【问题标题】:Angular 4 ngx-bootstrap datepicker-how to transform DATE-FORMAT from DD-MM-YYYY to YYYY-MM-DD while clicks on SubmitAngular 4 ngx-bootstrap datepicker-如何在单击提交时将 DATE-FORMAT 从 DD-MM-YYYY 转换为 YYYY-MM-DD
【发布时间】:2018-06-22 10:10:13
【问题描述】:

我在这里使用带有 DatePipe 的 ngx-bootstrap 日期选择器

如何在点击提交时将 DATE-FORMAT 从 DD-MM-YYYY 转换为 YYYY-MM-DD

*我的模板 - component.html

 <input type="text"
                   placeholder="FromDate"
                   class="form-control"
                   placement="top"
                   formControlName="fromDate"  [bsConfig]="{ dateInputFormat: 'DD-MM-YYYY' }"
                   bsDatepicker style="padding: 16px">

component.ts

ngOnInit() {
    this.LicenseDistributionForm.controls['toDate'].setValue(this._datePipe.transform(this.today, 'dd-MM-yyyy'));

this.LicenseDistributionForm.controls['fromDate'].setValue(this._datePipe.transform(this.firstDay, 'dd-MM-yyyy'));
    }

    submit() {
    if (!this.LicenseDistributionForm.valid) {
      this.validateAllFormFields(this.LicenseDistributionForm);
      console.log('Not valid!');
      return;
    }
    const params: any = {};

    params.fromDate = this.LicenseDistributionForm.value.fromDate;
    params.toDate = this.LicenseDistributionForm.value.toDate;


    {

    console.log('params', params);
         }
    this.organizationService.getLicenseDistributionSPDate( params.fromDate, params.toDate )
      .subscribe(licensedistributions => {
        this.licensedistributions = licensedistributions;
        console.log(licensedistributions, 'licensedistributions');
        // this.licensedistributionLoader=true;
      });

【问题讨论】:

    标签: angular datepicker bootstrap-datepicker ngx-bootstrap date-pipe


    【解决方案1】:

    使用momentjs

    moment(dateDDMMYYYY, 'DD-MM-YYYY').format('YYYY-MM-DD');
    

    您还可以对该语句应用更多验证。

    var momentObj = moment(dateDDMMYYYY, 'DD-MM-YYYY', true);
    
    if ( !momentObj.isValid() ) throw "Invalid date";
    
    dateYYYYMMDD = momentObj.format('YYYY-MM-DD');
    

    【讨论】:

    • 我如何声明这个日期DDMMYYYY ...?然后如何使用以下行进行格式化 params.fromDate = this.LicenseDistributionForm.value.fromDate; params.toDate = this.LicenseDistributionForm.value.toDate;
    • dateDDMMYYYY 是您要转换的格式的字符串
    【解决方案2】:

    不确定您的日期管道,但我更喜欢 momentjs。关注以下网址:

    http://momentjs.com/docs/#/displaying/format/

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-06-21
      • 1970-01-01
      • 1970-01-01
      • 2023-03-08
      • 1970-01-01
      • 1970-01-01
      • 2011-10-22
      • 2011-03-18
      相关资源
      最近更新 更多