toGMTstring()和toUTCstring()有什么区别?

Amo*_*rni 11 javascript mongoose mongodb node.js

我正在从Node.js应用程序(使用Mongoose)保存MongoDB服务器中的数据.

考虑以下代码:

var mongoose = require('mongoose');
var Schema = mongoose.Schema;

var schemaObj = new Schema({
    field1: String,
    field2: String,
    Datefield: Date//So on...
});

mongooseDB = mongoose.createConnection('mongodb://myserver:port/DBname');
mongooseDB.on('error', console.error.bind(console, 'error in connection'));

mongooseDB.once('open', function (err) {
        var objmodel = db.model('myschema', schemaObj); 
        modelObj.field1 ='value1'; 
        modelObj.Datefield = new Date().toGMTString(); //new Date().toUTCString();
        //So on..
        modelObj.save(function (err) {
            if (err)    
                 //Notify err
            else
                //DO some task after save
        });

    });
Run Code Online (Sandbox Code Playgroud)

在Datefield中,当我使用'toGMTstring()'或'toUTCstring()'时获取以下值

 'Thu, 24 Jan 2013 05:49:04 GMT'
Run Code Online (Sandbox Code Playgroud)

我浏览了以下链接:

不推荐使用toGMTString,不应再使用它

任何人都可以帮助我理解,关于Node.js,toUTCstring()和toGMTstring()之间的区别是什么?

Col*_*inE 17

GMT和UTC是不同的时区,分别是格林威治标准时间协调世界时.GMT是一个"太阳能"时区,而UTC则是"原子".在大多数情况下,它们基本上是相同的,但UTC更"普遍".

有趣的是,您指向的文档toUTCString仍显示GMT输出:

var today = new Date();
var UTCstring = today.toUTCString();
// Mon, 03 Jul 2006 21:44:38 GMT
Run Code Online (Sandbox Code Playgroud)

为了在应用程序之间交换数据,我更喜欢使用类似ISO8601的东西,它使用UTC的'Z'后缀:

2013-01-16T08:19Z
Run Code Online (Sandbox Code Playgroud)

"Z"令人困惑地代表"祖鲁时代"!