Как использовать момент-часовой пояс в классе 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'.
Ответы
Ответ 1
Используйте пакеты @types
и импортируйте их через import * as moment from 'moment-timezone';
Вы можете использовать все moment
методы и ВАР - членов в moment-timezone
экспортирует их.
У меня есть полный пример использования SystemJS на Как использовать момент-часовой пояс в Angular2 через SystemJs
Ответ 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'));
}
}