时间戳保存为UTC。 1274203800000
对应于2010-05-18 17:30:00 UTC
,这确实是2010-05-19 03:30:00 UTC+10
。我不知道如何从该时间戳获得2010-05-18 03:30:00
- 它必须是UTC-14,并且没有哪个国家将其作为时区。
(旁白:在你的代码,因为它代表,第一次使用的new Date().getTime()
什么都不做,因为它会返回相同的milliseconds
)
ETA:你不超过toLocaleString()
格式得到任何控制,格式来自用户的操作系统和浏览器设置。在我的机器上,我获得了12小时制时钟和一个包含时区名称。这是令人讨厌的,因为我认为12-hour time is a total disaster that should be wiped from the face of the planet和时区实际上是错误的。
但无论如何,如果你想要一个特定的时间格式,你必须自己创建它,因为JS没有提供格式选项。这可以说是相当繁琐:
var daynames= ['Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'];
var monthnames= ['January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'];
function padLeft(s, l, c) {
return new Array(l-s.length+1).join(c || ' ')+s;
};
function to12HourTime(x) {
var dn= daynames[x.getUTCDay()];
var mn= monthnames[x.getUTCMonth()];
var d= padLeft(''+x.getUTCDate(), 2, '0');
var y= padLeft(''+x.getUTCFullYear() ,4, '0');
var h= x.getUTCHours();
var m= padLeft(''+x.getUTCMinutes(), 2, '0');
var s= padLeft(''+x.getUTCSeconds(), 2, '0');
var p= h>=12? 'PM' : 'AM';
h= (h+11)%12+1;
return dn+', '+mn+' '+d+', '+y+' '+h+':'+m+':'+s+' '+p;
}
var t= 1274203800000;
var d= new Date(t+1000*60*60*10);
alert(to12HourTime(d));
// Wednesday, May 19, 2010 3:30:00 AM
好吧,我不知道生根粉UTC所以最终如果我想1274203800000转换成GMT +10那么有没有任何选项在JavaScript可用? – hunt 2010-05-18 14:36:10
你已经有了。 '1274203800000' **是**'2010-05-19 03:30:00 UTC + 10'。如果您使用数字“1274203800000”代表某个其他时间,那么您得到的不是标准的JavaScript时间戳,而必须确定它到底是什么。 – bobince 2010-05-18 14:48:59
你是对的它已经+10现在我怎么会将它转换成12小时格式? – hunt 2010-05-18 15:35:26