如何以UTC格式获取日期,无论当前系统日期与javascript如何?

时间:2016-04-27 05:03:42

标签: javascript date datetime

我想以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;

返回2016年4月26日星期三。如果此代码在其他地方运行,时间差为+ -12,则日期将是UTC中我不想要的系统日期。

4 个答案:

答案 0 :(得分:2)

在浏览器中保持格式一致的唯一方法是使用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()
        );
}

如果你做任何本地化编程,事情的复杂性会迅速增加,并且引入一些提到的库更有意义。

答案 1 :(得分:1)

如果您需要保留上述输出,请查看:

var dateString = new Date().toUTCString().split(' ');
return dateString[0] + " " + dateString[2] + dateString[1] + ", " + dateString[3];

日期here还有一些其他有用的UTC方法。

答案 2 :(得分:0)

你看过momentjs吗?它是一个日期对象包装器,可以轻松操作日期。只需使用提供的utc()函数即可。 http://momentjs.com/docs/#/manipulating/utc/

在通过npm安装片刻之后,下面是示例代码:

var moment = require("moment");

 var utcNow = moment().utc();

 console.log(utcNow);

这将输出当前的utc日期

答案 3 :(得分:0)

我建议在日期实例上调用<property name="show_sql">true</property> <property name="format_sql">true</property> <property name="use_sql_comments">true</property> 方法。这是代码

toISOString()

所以你在这里有通用时间