用JavaScript将太平洋标准时间凌晨1点转换为当地时间?
我们有一个系统脚本,每天在太平洋标准时间凌晨1点运行。我们的用户遍布世界各地。我们希望提供一个简单的网页,使用JavaScript显示用户本地时区的凌晨1点PST。例如,纽约市的用户应该在PST凌晨4点看到系统脚本运行的时间 PST时间格式为HH:MM DD.YYYY 这只需要在移动Safari上使用用JavaScript将太平洋标准时间凌晨1点转换为当地时间?,javascript,date,time,safari,Javascript,Date,Time,Safari,我们有一个系统脚本,每天在太平洋标准时间凌晨1点运行。我们的用户遍布世界各地。我们希望提供一个简单的网页,使用JavaScript显示用户本地时区的凌晨1点PST。例如,纽约市的用户应该在PST凌晨4点看到系统脚本运行的时间 PST时间格式为HH:MM DD.YYYY 这只需要在移动Safari上使用 最好的方法是什么?代码如下: alert(new Date(your_pst_server_time).toLocaleString()); 您可以使用新日期()对象的.getUTCHours(
最好的方法是什么?代码如下:
alert(new Date(your_pst_server_time).toLocaleString());
您可以使用
新日期()
对象的.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();
}
Date.prototype.getLocalTime=函数(格式){
变量日期=新日期();
var finalTime=((date.getUTCHours()-2))-((date.getTimezoneOffset())/60));
如果(格式+“”!=“24”){
如果(finalTime<0){finalTime=finalTime+24}
}
否则{
如果(finalTime>12){finalTime=(finalTime-12)+“PM”}
else{finalTime+=“AM”}
}
返回finalTime.toString();
}
在我的CET时区中,调用new Date().getLocalTime('24')
将返回“10”
,调用new Date().getLocalTime()
(没有参数或参数不是“24”
)将返回“上午10点”
此功能是合理的第一步,但不适用于时间偏移为x.5小时(x小时+30分钟)的印度等国家。不幸的是,你不能像那样除以60。你的时间是什么格式的?请举例说明。您的服务器时间是什么?您的本地pst时间是什么格式?是HH:MM DD.YYYY吗?还是ISO格式?