我使用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中时,就会出现问题。由于我不知道用户是否会在UTC/本地日期调用此方法,因此我要确保仅在不在UTC中的转换才会发生。请帮助。
javascript Date
对象具有方法getTimezoneOffset()
。您可以使用它。或使用getUTC*
方法:
var d = new Date();
var utcyear = d.getUTCFullYear();
所有日期都有UTC时间值。主机中创建的日期对象根据系统设置给出了仅读取时区偏移,并且使用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();
以毫秒(自1970-01-01t00:00:00:00 Z以来的MS)获得UTC时间值:
var timeValue = date.getTime();
将该时间值转回本地日期对象:
var date = new Date(timeValue);