我正在MongoDB申请中保存Node.js申请中的数据(使用Mongoose)。
请考虑以下代码:
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()之间的区别是什么?
答案 0 :(得分:15)
GMT和UTC是不同的时区,分别是Greenwich Mean Time和Coordinated Universal时间。 GMT是一个“太阳能”时区,而UTC则是“原子”。在大多数情况下,它们基本上是相同的,但UTC更“普遍”。
有趣的是,您为toUTCString
指向的文档仍显示GMT输出:
var today = new Date();
var UTCstring = today.toUTCString();
// Mon, 03 Jul 2006 21:44:38 GMT
为了在应用程序之间交换数据,我更喜欢使用类似ISO8601的东西,它使用UTC的'Z'后缀:
2013-01-16T08:19Z
'Z'混淆地代表'Zulu时间'!
答案 1 :(得分:0)
从我所看到的它们是相同的。 MDN上的文档已经指出toGMTString
已被弃用,而不是toUTCString
:
不推荐使用toGMTString(),不应再使用它。它仍然只是为了向后兼容而实现;请改用toUTCString()。
答案 2 :(得分:0)
通常用于格式化日期和时间(人类可读)。 您也可以使用toLocaleDateString()
var event = new Date(Date.UTC(2012, 11, 20, 3, 0, 0));
var options = { weekday: 'short', year: 'numeric', month: 'short', day: 'numeric' };
console.log(event.toLocaleDateString('en-US', options));
答案 3 :(得分:0)
对于 ISO 使用toISOString()
var today = new Date();
var ISOstring = today.toISOString();
// 2020-08-03T23:59:58.123Z