I am trying to use moment-timezone in my class. This is my typings.
\"moment\": \"github:DefinitelyTyped/DefinitelyTyped/moment/moment.d.ts#a1575b96ec38e91675062
Please try this code:
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'));
}
}
Use Typescript @types packages and import it via import * as moment from 'moment-timezone';
You can use all moment
methods and member vars as moment-timezone
exports them.
I have a complete example using SystemJS at How to use moment-timezone in Angular2 via SystemJs
I will update this for 2020.
$ npm install moment-timezone @types/moment-timezone
import moment from 'moment-timezone';
...
// do this - outside of any class is fine
moment.tz.add('America/Los_Angeles|PST PDT|80 70|01010101010|1Lzm0 1zb0 Op0 1zb0 Rd0 1zb0 Op0 1zb0 Op0 1zb0');
...
someMethod() {
const m = moment(the_date);
...
const mFormatted = m.tz('America/Los_Angeles').format('YYYY-MM-DDTHH:mm:ssZZ');
}
Timezone defs can be found at https://github.com/moment/moment-timezone/blob/develop/data/packed/latest.json. I use this to define my own rather than read them all in.
I had the same issue and solved it this way:
Typings (ambientDependencies):
"moment": "registry:dt/moment#2.8.0+20160316155526",
"moment-timezone": "github:DefinitelyTyped/DefinitelyTyped/moment-timezone/moment-timezone.d.ts#f8a90040348e83926f44e690b209769c4f88b961"
Import:
import * as moment from 'moment';
import 'moment-timezone'
Usage:
moment("2014-06-01T12:00:00Z")
.tz('America/Los_Angeles')
.format('ha z');
So, basically I'm doing .tz() function on moment imported object (which in fact does not exist), but the import of moment-timezone extends it with additional functions.
I'm also using systemjs-plugin-json to properly load json object with timezone definitions inside moment-timezone library.
I hope this helps.