2013-01-24 74 views
5

Tôi đang lưu dữ liệu trong máy chủ MongoDB từ Node.js ứng dụng (sử dụng Mongoose).Sự khác nhau giữa toGMTstring() và toUTCstring() là gì?

Hãy xem xét đoạn mã sau:

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

    }); 

Trong DateField, Bắt giá trị sau khi tôi sử dụng 'toGMTstring()' hoặc 'toUTCstring()'

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

tôi đã đi qua các liên kết sau đây:

toGMTString bị phản đối và không còn được sử dụng

bất cứ ai có thể giúp tôi trong việc tìm hiểu, whats sự khác biệt giữa toUTCstring() và toGMTstring() đối với Node.js với?

Trả lời

11

GMT và UTC là múi giờ khác nhau, chúng là Greenwich Mean TimeCoordinated Universal Thời gian tương ứng. GMT là múi giờ 'mặt trời', trong khi UTC là 'nguyên tử'. Đối với hầu hết các mục đích họ về cơ bản là cùng một điều, tuy nhiên UTC là 'phổ quát' hơn.

Điều thú vị là các tài liệu hướng dẫn bạn trỏ đến cho toUTCString vẫn hiển thị một đầu ra giờ:

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

Đối với trao đổi dữ liệu giữa ứng dụng tôi muốn sử dụng cái gì đó như ISO8601, trong đó sử dụng các 'Z' hậu tố cho UTC:

2013-01-16T08:19Z 

Nơi 'Z' gây nhầm lẫn là viết tắt của 'Zulu time'!

0

Từ những gì tôi có thể thấy chúng giống nhau. Và tài liệu tại MDN đã khẳng định rằng toGMTString đã phản đối ủng hộ toUTCString:

toGMTString() bị phản đối và không còn được sử dụng. Nó vẫn được thực hiện chỉ cho khả năng tương thích ngược; vui lòng sử dụng toUTCString() để thay thế.

Các vấn đề liên quan