Angular 无效参数:';2017-12-05 05:30:00管道和#x27;DatePipe';-游猎

Angular 无效参数:';2017-12-05 05:30:00管道和#x27;DatePipe';-游猎,angular,safari,momentjs,Angular,Safari,Momentjs,例外情况 InvalidPipeArgument:“2017-12-05 05:30:00用于管道“日期管道” 代码 以下代码在mac machine chrome浏览器上运行正常,但在safari中失败: 使用 {{ (item.Date | dateCulturePipe) | date:'dd-MMM-yyyy HH:mm' }} Date 2018-06-01 11:39:41.880 2018-05-25 10:39:54.597 NULL 2018

例外情况

InvalidPipeArgument:“2017-12-05 05:30:00用于管道“日期管道”

代码

以下代码在mac machine chrome浏览器上运行正常,但在safari中失败:

使用

{{ (item.Date | dateCulturePipe) | date:'dd-MMM-yyyy HH:mm' }}
Date

    2018-06-01 11:39:41.880
    2018-05-25 10:39:54.597
    NULL
    2018-05-23 09:33:00.000
    2018-05-22 13:04:20.190
    2018-05-22 11:20:14.530
    2018-05-19 11:55:53.750
    2018-05-19 11:55:04.117
    2018-05-18 11:34:06.190
    2018-05-10 11:57:18.507
    2018-05-10 11:44:25.893
    2018-05-10 11:42:47.467
    2018-05-10 11:42:21.197
    2018-05-10 11:41:46.363
    2018-05-10 11:40:42.483
    NULL
    NULL
    2018-05-04 11:04:00.000
    NULL
    2018-05-03 11:04:00.000
    NULL

{{ (item.Date | dateCulturePipe) | date:'dd-MMM-yyyy HH:mm' }}
Date

    2018-06-01 11:39:41.880
    2018-05-25 10:39:54.597
    NULL
    2018-05-23 09:33:00.000
    2018-05-22 13:04:20.190
    2018-05-22 11:20:14.530
    2018-05-19 11:55:53.750
    2018-05-19 11:55:04.117
    2018-05-18 11:34:06.190
    2018-05-10 11:57:18.507
    2018-05-10 11:44:25.893
    2018-05-10 11:42:47.467
    2018-05-10 11:42:21.197
    2018-05-10 11:41:46.363
    2018-05-10 11:40:42.483
    NULL
    NULL
    2018-05-04 11:04:00.000
    NULL
    2018-05-03 11:04:00.000
    NULL
已选中-不知道在哪里更改


您可以参考此特定问题

若要修复此问题,请替换字符串

'2017-11-02 00:00:00.000'.replace(/\s/g, "T")

你可以参考这个特别的问题

若要修复此问题,请替换字符串

'2017-11-02 00:00:00.000'.replace(/\s/g, "T")

当日期格式为“2017-11-02 00:00:00.000”时,Safari浏览器会引发错误。它需要T格式的日期,即“2017-11-02T00:00:00”,而不是日期和时间之间的空格


使用正则表达式匹配空格并用“T”替换的上述解决方案将起作用,问题应在Safari上解决。

Safari浏览器在日期格式为“2017-11-02 00:00:00.000”时抛出错误。它需要T格式的日期,即“2017-11-02T00:00:00”,而不是日期和时间之间的空格


使用正则表达式匹配空格并用“T”替换的上述解决方案将起作用,该问题应在Safari上解决。

我也遇到了同样的问题,我已通过向API响应提供日期格式的T和Z进行了更正。 以前从后端开始,它是2017-07-28 12:02:14,现在从后端开始,我更改为2017-07-28-12:02:14.000Z格式,如果从后端无法更改,那么从前端开始,使用替换方法,然后添加“Z”

'2017-11-02 00:00:00.000'.replace(/\s/g, "T") + 'Z'
最终结果为:-2017-11-02T00:00:00.000Z

{{mydate | date:'h:mm a'}} -> 5:30 PM -> according to local timezone
第二种方法:从空格中拆分字符串,然后在另一部分添加“T”和“concat”,最后添加“Z”

let dateParts = '2017-11-02 00:00:00.000'.split(' ');
console.log(dateParts[0]+'T'+dateParts[1]+'Z')
现在在前端,显示您想要的格式,重要的一点是,如果您想要显示UTC格式,那么angular pipe不会提供给您,您必须自己做。其“2017-11-02T12:00:00.000Z”的示例

如果需要小写,则添加小写管道

{{mydate | date:'h:mm a' | lowercase}}-> 5:30 pm -> according to local timezone
如果您希望显示UTC日期,而不更改为本地时间,则

HTML文件

{{showUTCDate(mydate) | date: 'h:mm a' | lowercase}} -> Output 12:00 pm
TS文件

  showUTCDate(utcdate){
    let date = new Date(utcdate);
    return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),  date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
  }

您也可以使用管道来更改此日期。

我也遇到了同样的问题,我已通过向API响应提供日期格式的T和Z进行了更正。 以前从后端开始,它是2017-07-28 12:02:14,现在从后端开始,我更改为2017-07-28-12:02:14.000Z格式,如果从后端无法更改,那么从前端开始,使用替换方法,然后添加“Z”

'2017-11-02 00:00:00.000'.replace(/\s/g, "T") + 'Z'
最终结果为:-2017-11-02T00:00:00.000Z

{{mydate | date:'h:mm a'}} -> 5:30 PM -> according to local timezone
第二种方法:从空格中拆分字符串,然后在另一部分添加“T”和“concat”,最后添加“Z”

let dateParts = '2017-11-02 00:00:00.000'.split(' ');
console.log(dateParts[0]+'T'+dateParts[1]+'Z')
现在在前端,显示您想要的格式,重要的一点是,如果您想要显示UTC格式,那么Angle pipe不会提供给您,您必须自己提供。例如,如果它是“2017-11-02T12:00:00.000Z)

如果需要小写,则添加小写管道

{{mydate | date:'h:mm a' | lowercase}}-> 5:30 pm -> according to local timezone
如果您希望显示UTC日期,而不更改为本地时间,则

HTML文件

{{showUTCDate(mydate) | date: 'h:mm a' | lowercase}} -> Output 12:00 pm
TS文件

  showUTCDate(utcdate){
    let date = new Date(utcdate);
    return new Date(date.getUTCFullYear(), date.getUTCMonth(), date.getUTCDate(),  date.getUTCHours(), date.getUTCMinutes(), date.getUTCSeconds());
  }
您也可以使用管道更改此日期。

不走运,我在申请后得到“2018-06-02T04:38:44.507Z”。替换(/\s/g,“T”)它与“2018-06-02T04:38:44.507Z”保持不变。不走运,我在申请后得到“2018-06-02T04:38:44.507Z”。替换(/\s/g,“T”)它与“2018-06-02T04:38:44.507Z”保持不变