代码之家  ›  专栏  ›  技术社区  ›  Hasan Zubairi

角度材质日期选择器日期格式

  •  0
  • Hasan Zubairi  · 技术社区  · 6 年前

    我试图从datepicker获取日期,并将其保存在sql server中,但输出结果是“1538107200000”。它是什么格式以及如何将其转换为与SQLServer日期格式兼容的日期格式。

    在component.html中

    <input matInput [matDatepicker]="picker" placeholder="enter date"
               (dateInput)="addEvent('input', $event)">
        <mat-datepicker-toggle matSuffix [for]="picker"></mat-datepicker-toggle>
        <mat-datepicker #picker></mat-datepicker>
    

    在component.ts中

    addEvent(type: string, dinput: MatDatepickerInputEvent<Date>) {
        this.dinput.push(`${dinput.value}`);
        this.date = new Date(this.dinput[0].toString());
        this.dates = moment(this.date, 'YYYY-MM-DD').toString();
        console.log(this.dates);
      }
    

    3 回复  |  直到 6 年前
        1
  •  2
  •   Mukesh Verma    6 年前

    1538107200000是以毫秒为单位的日期(历元时间戳)。将其转换为日期对象使用 new Date(1538107200000) . moment(new Date(1538107200000)).format("YYYY-MM-DD") . 这将为您提供YYYY-MM-DD格式的日期。现在您需要将其保存在SQL Server中。这将作为字符串转到您的服务器,您需要找到服务器支持的日期格式,并将该字符串转换为date并保存到DB。

        2
  •  0
  •   Justin    6 年前

    here . 我相信你没有正确地使用力矩构造器。试试这个:

    moment(this.date).format('YYYY-MM-DD').toString();

    或者传递给矩构造函数的值的格式是矩无法识别的。看到了吗 documentation .

        3
  •  0
  •   PrathapG    6 年前

    您正在获取json格式的日期。下面是一个自定义过滤器,用于将json日期格式转换为实际日期。

    .filter("filterdate", function() {
    var re = /\/Date\(([0-9]*)\)\//;
    return function(x) {
        var m = x.match(re);
        if( m ) return new Date(parseInt(m[1]));
        else return null;
    };
    });
    

    组件.html

    <input {{dateInput| filterdate | date:'dd/MM/yyyy'}}>