我正在尝试获取UTC格式的当前日期。到目前为止,我可以做到这一点,但我坚持的是,它检查当前的‘系统日期’并返回结果。我不希望发生这种情况,因为我特别需要UTC格式,而不是通过获取系统日期。
此外,我输出结果的格式是我想要的格式,不做任何更改。任何建议都会有很大帮助。
下面是我的代码:
var now = new Date();
var currentDate;
var date = (new Date(now) + '').split(' ');
date[0] = date[0] + ',';
date[2] = date[2] + ',';
currentDate = [date[0], date[1], date[2], date[3]].join(' ');
return currentDate;
这返回为Wed,Apr26,2016。如果此代码在其他地方运行,时差为+-12,则日期将是以UTC表示系统日期,这是我不想要的。
发布于 2016-04-27 13:38:17
保持跨浏览器格式一致的惟一方法是使用Date#getUTC*
函数构建一个小的实用函数,或者使用一个可以为您完成此任务的库。我会选择前者。你可以使用类似这样的东西:
function getUTCDateString(){
var d = new Date();
var days = ['Mon', 'Tue', 'Wed', 'Thu', 'Fri', 'Sat', 'Sun'];
var month = ['Jan', 'Feb', 'Mar', 'April', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'];
return (
days[d.getUTCDay()-1]
+ ', ' + month[d.getUTCMonth()]
+ d.getUTCDate()
+ ', ' + d.getUTCFullYear()
);
}
如果您进行任何本地化编程,复杂性会迅速增加,并且引入一些提到的库会更有意义。
发布于 2016-04-27 13:31:03
如果您需要保留您提到的输出,请查看以下内容:
var dateString = new Date().toUTCString().split(' ');
return dateString[0] + " " + dateString[2] + dateString[1] + ", " + dateString[3];
对于Date here,还有其他一些有用的UTC方法。
发布于 2016-04-27 13:13:53
你调查过momentjs了吗?它是一个date对象包装器,可以使操作日期变得简单。只需使用提供的utc()函数即可。http://momentjs.com/docs/#/manipulating/utc/
通过npm安装moment后,示例代码如下:
var moment = require("moment");
var utcNow = moment().utc();
console.log(utcNow);
这将输出当前utc日期
https://stackoverflow.com/questions/36880730
复制相似问题