2013-01-24 23 views
5

我正在从Node.js应用程序(使用Mongoose)将数据保存在MongoDB服务器中。toGMTstring()和toUTCstring()有什么区别?

考虑下面的代码:

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 
     }); 

    }); 

在的DateField,获得下面的值当我使用 'toGMTstring()' 或 'toUTCstring()'

'Thu, 24 Jan 2013 05:49:04 GMT' 

我通过下面的链接去:

toGMTString已被弃用,不应该再使用

谁能帮我理解,什么针对Node.js的toUTCstring()和toGMTstring()有什么区别?

回答

11

GMT和UTC是不同的时区,它们分别是Greenwich Mean TimeCoordinated Universal时间。 GMT是'太阳能'时区,而UTC是'原子'。对于大多数目的而言,它们本质上是相同的,但UTC更“普遍”。

有趣的是你点为toUTCString文档仍然显示出GMT输出:

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

对于应用程序之间的数据交换,我宁愿使用像ISO8601,其采用的“Z”后缀为UTC:

2013-01-16T08:19Z 

'Z'混淆地代表'祖鲁时间'!

0

从我所看到的他们是相同的。而在MDN文档已经指出toGMTString已赞成被否决的toUTCString

toGMTString()已被弃用,不应再使用。它只是为了向后兼容而实施;请使用toUTCString()代替。