Angular 角度材质日期选择器-仅选择日期

Angular 角度材质日期选择器-仅选择日期,angular,datepicker,angular-material,date-formatting,Angular,Datepicker,Angular Material,Date Formatting,我有一个材料日期采集器,我想从中只得到没有时间戳的日期。由于我的时区是GMT+2,API总是会收到类似于2018年4月3日22:00:00 UTC的信息,但我希望将日期保存在本地 我的日期选择器:“2018年4月11日星期三00:00:00 GMT+0200(中欧昼间)” 可以在调用API之前格式化datepicker值,但我希望有更好的解决方案。是的,我知道有两种方法是有效的 使用日期适配器。您可以将其用作服务或全局函数 使用将ISODate转换为可读日期的用户定义函数 您可以使用node

我有一个材料日期采集器,我想从中只得到没有时间戳的日期。由于我的时区是GMT+2,API总是会收到类似于2018年4月3日22:00:00 UTC的信息,但我希望将日期保存在本地

我的日期选择器:“2018年4月11日星期三00:00:00 GMT+0200(中欧昼间)”



可以在调用API之前格式化datepicker值,但我希望有更好的解决方案。

是的,我知道有两种方法是有效的

  • 使用日期适配器。您可以将其用作服务或全局函数
  • 使用将ISODate转换为可读日期的用户定义函数

  • 您可以使用node.js的
    moment
    库:

    npm i moment --save
    
    在那之后,你可以这样做

    let formatted_date = moment(var_to_format).format("YYYY-MM-DD");
    

    检查这个谢谢@SuvethanNantha,我让它与答案中的组件一起工作。
    // shared.service.ts
    
    formatDate(date): string {
        const _date = new Date(date);
        const day = _date.getDate();
        const month = _date.getMonth() + 1;
        const year = _date.getFullYear();
        return `${year}-${month}-${day}`;
      }
    
      formatTime(date: Date): string {
        const _date = new Date(date);
        const hours = _date.getHours()
        const minutes = _date.getMinutes();
        const seconds = _date.getSeconds();
        return `${hours}:${minutes}:${seconds}`;
      }
    
      toDateTimestamp(date: Date): string {
        const dateStamp = this.formatDate(date);
        const timeStamp = this.formatTime(date);
        return `${dateStamp} ${timeStamp}`
      }
      calculateDays(fromDate, toDate): number {
        const FromDate = new Date(fromDate);
        const ToDate = new Date(toDate);
        const difference = ToDate.getTime() - FromDate.getTime();
        const days = Math.round((difference / (1000 * 60 * 60 * 24)));
        return days;
      }
    
    
    npm i moment --save
    
    let formatted_date = moment(var_to_format).format("YYYY-MM-DD");