我们有一个系统脚本,每天在PST上午1点运行。我们有世界各地的用户。我们希望提供一个简单的网页,使用JavaScript在用户的当地时区显示上午1点PST。例如,纽约市的用户应该看到系统脚本运行的时间为上午4点。将1 AM PST转换为JavaScript的本地时间?
PST时间格式为HH:MM DD.YYYY。
这只需要在移动Safari上工作。
这样做的最好方法是什么?
我们有一个系统脚本,每天在PST上午1点运行。我们有世界各地的用户。我们希望提供一个简单的网页,使用JavaScript在用户的当地时区显示上午1点PST。例如,纽约市的用户应该看到系统脚本运行的时间为上午4点。将1 AM PST转换为JavaScript的本地时间?
PST时间格式为HH:MM DD.YYYY。
这只需要在移动Safari上工作。
这样做的最好方法是什么?
可以使用new Date()
对象的.getUTCHours()
和.getTimezoneOffset()
方法。为了便于使用,我将该新功能附加到该对象。它将接受一个指定返回的时间格式的参数。
Date.prototype.getLocalTime = function (format){
var date = new Date();
var finalTime = ((date.getUTCHours()-2))-(((date.getTimezoneOffset())/60));
if (format+'' != '24'){
if (finalTime < 0){ finalTime = finalTime + 24 }
}
else {
if (finalTime > 12){ finalTime = (finalTime - 12)+" PM" }
else { finalTime += " AM" }
}
return finalTime.toString();
}
随着我的CET时区,呼吁new Date().getLocalTime('24')
将返回"10"
,并呼吁new Date().getLocalTime()
(不带参数或参数不是"24"
)将返回"10 AM"
。
这个函数是一个合理的第一次启动,但不会与有时间的X.5小时偏移(X小时30分钟+),像印度这样的国家应对。不幸的是,你不能像这样分割60。
什么格式你的时间准确?请举个例子。 – powtac 2013-02-24 11:07:19
更新,谢谢。 – Crashalot 2013-02-24 17:53:52