如何使用自定义日期格式' MM / DD / YYYY H:MM am / pm'在moment.js?

时间:2017-08-23 13:40:21

标签: angular momentjs

我使用了angular4和moment.js。我的自定义格式为: - ' MM / DD / YYYY H:MM am / pm'我不知道如何使用这种格式。

Component.ts: -

import * as moment from 'moment';
ngOnInit() {
  moment(1503491583*1000).format('MM/DD/YYYY H:MM am/pm');
}

输出: - 08/23/2017 18:08 pm3 / p3

此输出错误。请告诉我们如何获得输出是' 08/23/2017 18:08 pm'

2 个答案:

答案 0 :(得分:3)

只需使用a令牌,请参阅format()文档。

请注意,您必须使用小写mm来获取分钟数,而大写MM则需要数月。

import * as moment from 'moment';
ngOnInit() {
  moment(1503491583*1000).format('MM/DD/YYYY H:mm a');
}

您收到pm3/p3因为am/pm被解释为:

  • a => ampmpm为您的情况)
  • m作为分钟(在您的情况下为3
  • p作为p字符

作为旁注,片刻具有moment.unix(Number)方法来解析自Unix Epoch以来的秒数,并且文档说:

  

这实现为moment(timestamp * 1000),因此包含输入时间戳中的部分秒。

您可以使用moment.unix(503491583)代替moment(1503491583*1000)来获得相同的结果。

答案 1 :(得分:0)

import { MAT_MOMENT_DATE_FORMATS, MomentDateAdapter } from '@angular/material-moment-adapter';
import { DateAdapter, MAT_DATE_FORMATS, MAT_DATE_LOCALE } from '@angular/material/core';
import * as moment from 'moment';


@Component({
  selector: 'app-user-details',
  templateUrl: './user-details.component.html',
  styleUrls: ['./user-details.component.scss'],
  providers: [
    { provide: DateAdapter, useClass: MomentDateAdapter, deps: [MAT_DATE_LOCALE] },
    { provide: MAT_DATE_FORMATS, useValue: MAT_MOMENT_DATE_FORMATS },
    // {provide: MAT_DATE_FORMATS, useValue: MY_FORMATS},
  ],
})
export class UserDetailsComponent implements OnInit {

  userDetailsFormGroup = this.fb.group({
    firstName: [''],
    lastName: [''],
    username: [''],
    address: ['', Validators.required],
    dob: [moment(), Validators.required],
    gender: ['', Validators.required],
    contactNumber: ['', Validators.required],
  });



   updateUserProfile() {

   const dobDate = this.userDetailsFormGroup.controls.dob.value;
     const momentDOB1 = dobDate.format('MM/DD/YYYY');

       const body = {
      'firstName': this.userDetailsFormGroup.controls.firstName.value,
      'lastName': this.userDetailsFormGroup.controls.lastName.value,
      'address': this.userDetailsFormGroup.controls.address.value,
      'dob': momentDOB1,
      'gender': this.userDetailsFormGroup.controls.gender.value,
      'contactNumber': this.userDetailsFormGroup.controls.contactNumber.value

    };


    // call http method here
   }


   getUserProfileData(){

   //get http 
    this.http.get<any>(AppSettings.BASE_URL + '/v1/userProfile/getMyProfile').pipe()
      .subscribe(
          data => {
              const dateDob = moment(data.dob, 'MM/DD/YYYY');
              console.log('getting date format :::');
              console.log(dateDob.toISOString());
              this.userDetailsFormGroup.controls.dob.setValue(dateDob);
          }
      );
}