我不太确定如何在日期过滤器的angularjs中设置时区,将1970-01-01转换为1969-12-31。我见过this post,它解释了Java中的相同问题,但不确定如何在AngularJs中处理它 - 任何线索?
答案 0 :(得分:1)
JavaScript日期基于UTC时间1970年1月1日午夜以来的毫秒数。一天持有86,400,000毫秒。相对于UTC时间1970年1月1日,JavaScript日期对象范围为-100,000,000天到100,000,000天。
来源:https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date
JavaScript Date
类型没有时区支持*您需要使用ISO 8601
格式或以UTC格式发送timestamp
。
您还可以使用timezone-js或moment.js
等库答案 1 :(得分:1)
角度developer guide说明了时区:
Angular日期时间过滤器使用浏览器的时区设置。相同的应用程序将显示不同的时间信息,具体取决于运行该应用程序的计算机的时区设置。 JavaScript和Angular目前都不支持使用开发人员指定的时区显示日期。
您可以使用自己的过滤器来使用特定的时区。这是一个简单的使用moment.js解析19700101和GMT时区:
app.filter('GMT', function() {
return function(input) {
return moment(input + ' +0000', "YYYYMMDD").format('MMM DD, YYYY');
};
});
答案 2 :(得分:0)
感谢大家的参与。 经过相当多的时间试图找到解决问题的简单方法后,我找到了解决方案 - 只需使用Date及其中一种方法:
new Date(date).toISOString();
这是完成工作并且非常短暂:)