How to use moment-timezone in Angular 2 class?

前端 未结 4 2042
梦毁少年i
梦毁少年i 2021-02-07 09:24

I am trying to use moment-timezone in my class. This is my typings.

\"moment\": \"github:DefinitelyTyped/DefinitelyTyped/moment/moment.d.ts#a1575b96ec38e91675062         


        
相关标签:
4条回答
  • 2021-02-07 09:55

    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'));
         }
       }
    
    0 讨论(0)
  • 2021-02-07 09:56

    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

    0 讨论(0)
  • 2021-02-07 09:59

    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.

    0 讨论(0)
  • 2021-02-07 10:08

    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.

    0 讨论(0)
提交回复
热议问题