Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用JavaScript将太平洋标准时间凌晨1点转换为当地时间?_Javascript_Date_Time_Safari - Fatal编程技术网

用JavaScript将太平洋标准时间凌晨1点转换为当地时间?

用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(

我们有一个系统脚本,每天在太平洋标准时间凌晨1点运行。我们的用户遍布世界各地。我们希望提供一个简单的网页,使用JavaScript显示用户本地时区的凌晨1点PST。例如,纽约市的用户应该在PST凌晨4点看到系统脚本运行的时间

PST时间格式为HH:MM DD.YYYY

这只需要在移动Safari上使用


最好的方法是什么?

代码如下:

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格式?