Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/design-patterns/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Angularjs日期管道过滤器输出错误_Angularjs_Angularjs Scope - Fatal编程技术网

Angularjs日期管道过滤器输出错误

Angularjs日期管道过滤器输出错误,angularjs,angularjs-scope,Angularjs,Angularjs Scope,目前我在我的项目中使用angularjs,我正在使用angularjs将日期格式“2019-05-09T20:09:11.677Z”转换为“MM/dd/yyyy”,但它给我的输出是错误的“2019年10月5日”。预计产量为“2019年9月5日” 问题是什么?有人能帮我吗 {{'2019-05-09T20:09:11.677Z'|日期:'MM/dd/yyyy'} 电流输出(错误):2019年10月5日 预期输出(右):2019年9月5日日期筛选器考虑您的时区。由于您试图打印的日期的时间是晚上8点,

目前我在我的项目中使用angularjs,我正在使用angularjs将日期格式“2019-05-09T20:09:11.677Z”转换为“MM/dd/yyyy”,但它给我的输出是错误的“2019年10月5日”。预计产量为“2019年9月5日”

问题是什么?有人能帮我吗

{{'2019-05-09T20:09:11.677Z'|日期:'MM/dd/yyyy'}

电流输出(错误):2019年10月5日


预期输出(右):2019年9月5日

日期筛选器考虑您的时区。由于您试图打印的日期的时间是晚上8点,因此我猜您所在的时区在+0400和+1200之间,因此日期将进入2019年10月5日

如果要强制时区设置为不同的值,例如UTC,可以使用

{{ '2019-05-09T20:09:11.677Z' | date:'MM/dd/yyyy' : '+0000' }}

您必须将时区指定为参数之一

{{ date_expression | date : format : timezone}}
例如:

更多信息


为您提供帮助的小演示

发生这种情况是因为angularJS使用新日期()方法转换日期中的文本,这会将日期移动到您的时区,因为我可以看到您使用的时间为晚上8点,在其中添加您的时区差,您会得到这样的结果,如果您在印度,请添加5小时30分钟,因为您领先GMT+5:30。要解决此问题,只需从日期文本中删除时间组件。@GauravSingh如果要删除时间部分,我可以设置时区{{'2019-05-09T20:09:11.677Z'| date:'MM/dd/yyyyy':'+0000'}}这样就可以了吗?是的,如果你只需要在前端显示它,就可以了。但是,如果您将在JS代码中访问,您将再次面临相同的问题。
{{date| date:'shortDate':'GMT' }}