我使用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时才进行转换。请帮忙。
答案 0 :(得分:1)
所有日期的核心都是UTC time value。根据系统设置,在主机中创建的日期对象将被指定为只读timezone offset,使用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));
从该(或任何)日期对象获取ISO日期字符串:
var isoString = date.toISOString();
获取UTC时间值(以毫秒为单位)(自1970-01-01T00:00:00Z以来的ms):
var timeValue = date.getTime();
将该时间值转回本地日期对象:
var date = new Date(timeValue);
答案 1 :(得分:1)
JavaScript Date
对象的方法为getTimezoneOffset()
。你可以用它。或者使用getUTC*
方法:
var d = new Date();
var utcyear = d.getUTCFullYear();