我使用Javascript函数将日期转换为UTC日期,如下所示:
Date.prototype.convertToUTC = function () {
var month = this.getMonth();
var day = this.getDate();
var year = this.getFullYear();
return new Date(Date.UTC(year, month, day));
}现在,当应用此函数的日期已经是UTC时,问题就出现了。由于我不知道user是否会在UTC/Local date调用此方法,因此我希望确保只有当它不是UTC时才会发生转换。请帮帮忙。
发布于 2012-11-06 17:32:24
所有的日期都有一个UTC time value在他们的心脏。根据系统设置为在主机中创建的Date对象提供只读偏移量,使用getDate、getHours等读取的值基于该偏移量。
如果您希望UTC毫秒数从纪元开始,只需使用getTime()方法即可。或者,也可以使用UTC方法、getUTCDay、getUTCHours等来构建您自己的格式化字符串。
最后,还有toISOString,它应该为UTC返回一个ISO格式的日期字符串,但在不是很老的浏览器中可能缺乏支持。
一些例子
要为2012-11-06T15:45:01Z创建本地日期对象:
var date = new Date(Date.UTC(2012, 10, 6, 15, 45, 1));要从该(或任何) date对象中获取ISO日期字符串:
var isoString = date.toISOString();要获取以毫秒为单位的UTC时间值(自1970-01-01T00:00:00Z以来的ms):
var timeValue = date.getTime();要将该时间值转换回本地日期对象,请执行以下操作:
var date = new Date(timeValue);发布于 2012-11-06 17:33:41
JavaScript Date对象具有getTimezoneOffset()方法。你可以用这个。或者使用getUTC*方法:
var d = new Date();
var utcyear = d.getUTCFullYear();https://stackoverflow.com/questions/13247970
复制相似问题