2013-01-24 10 views
5

Ich speichere Daten in MongoDB Server von Node.js Anwendung (mit Mongoose).Was ist der Unterschied zwischen toGMTstring() und toUTCstring()?

Betrachten Sie folgenden Code:

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

    }); 

Im Datefield, Einsteigen Wert nach, wenn ich 'toGMTstring()' oder 'toUTCString()'

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

ich durch die folgenden Links ging:

toGMTString ist veraltet und nicht mehr verwendet werden sollte

Kann mir jemand zu verstehen helfen, was ist der Unterschied zwischen toUTCString() und toGMTstring() in Bezug auf Node.js?

Antwort

11

GMT und UTC sind verschiedene Zeitzonen, sie sind Greenwich Mean Time und Coordinated Universal Zeit jeweils. GMT ist eine "Solarzeitzone", während UTC "Atom" ist. Für die meisten Zwecke sind sie im Wesentlichen dasselbe, UTC ist jedoch "universeller".

Interessanterweise ist die Dokumentation, die Sie für toUTCString Punkt zeigt noch einen GMT-Ausgang:

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

Zum Datenaustausch zwischen Anwendung würde ich lieber etwas wie ISO8601 verwenden, das die ‚Z‘ Suffix für UTC verwendet:

2013-01-16T08:19Z 

Wo das 'Z' verwirrenderweise für 'Zulu Zeit' steht!

0

Von dem, was ich sehen kann, sind sie gleich. Und die Dokumentation bei MDN heißt es bereits, dass toGMTString hat sich für toUTCString veraltet:

toGMTString() ist veraltet und nicht mehr verwendet werden sollte. Es bleibt nur für die Rückwärtskompatibilität implementiert; Verwenden Sie stattdessen toUTUTCString().

Verwandte Themen