Как использовать момент-часовой пояс в классе Angular 2?

Я пытаюсь использовать момент-часовой пояс в своем классе. Это мои типизации.

"moment": "github:DefinitelyTyped/DefinitelyTyped/moment/moment.d.ts#a1575b96ec38e916750629839d2110cb96210f89",
"moment-timezone": "github:DefinitelyTyped/DefinitelyTyped/moment-timezone/moment-timezone.d.ts#f8a90040348e83926f44e690b209769c4f88b961"

Мой импорт:

import * as moment from 'moment';
import * as tz from 'moment-timezone';

Мое использование:

var jun = moment("2014-06-01T12:00:00Z");
jun.tz('America/Los_Angeles').format('ha z');

Моя ошибка:

Property 'tz' does not exist on type 'Moment'.

Ответ 2

У меня была такая же проблема, и я решил ее так:

Типы (ambientDependencies):

"moment": "registry:dt/moment#2.8.0+20160316155526",
"moment-timezone": "github:DefinitelyTyped/DefinitelyTyped/moment-timezone/moment-timezone.d.ts#f8a90040348e83926f44e690b209769c4f88b961"

Импорт

import * as moment from 'moment';
import 'moment-timezone'

Использование:

moment("2014-06-01T12:00:00Z")
  .tz('America/Los_Angeles')
  .format('ha z');

Итак, в основном я выполняю функцию .tz() на момент импортируемого объекта (который на самом деле не существует), но импорт момента-времени расширяет его с помощью дополнительных функций.

Я также использую systemjs-plugin-json для правильной загрузки json-объекта с определениями часового пояса в библиотеке момента-времени.

Надеюсь, это поможет.

Ответ 3

Пожалуйста, попробуйте этот код:

import * as moment from 'moment-timezone';

   export class Page1 {  

     public setdate = moment(); // today date
     constructor(){
       this.setdate.tz("Asia/Singapore").format('YYYY-MM-DD HH:mm:ss');
       console.log(this.setdate.tz("Asia/Singapore").format('YYYY-MM-DD HH:mm:ss'));
     }
   }