Angular 无效参数:';2017-12-05 05:30:00管道和#x27;DatePipe';-游猎
例外情况 InvalidPipeArgument:“2017-12-05 05:30:00用于管道“日期管道” 代码 以下代码在mac machine chrome浏览器上运行正常,但在safari中失败: 使用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
{{ (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”保持不变