到目前为止,我已经为PST,CST,EST,GMT,CEST,IST和AST创建了一个时区列表,该列表非常有效。但是我还想添加一个始终为PST的输入框,并从中输出本地时间。
即如果用户输入09:00,那么如果他们居住在英国,则将输出17:00 因此,它基本上会注册您相对于时区的位置,并从输入的时间中添加(或减去)。 (英国为+8,因此输入+ 8为输出)
这是我现在所在的地方
https://jsfiddle.net/wayneker/unc7e64f/16/
尽管我知道此演示非常理想,但我知道(根据我目前的知识)我目前无法做到这一点。
https://greenwichmeantime.com/time/to/pst-local/
我已经研究了各种页面,但其中的很多内容却无法理解。但是我所看到的通常是PST本地的
window.setInterval(function(){
// function to calculate local time
// in a different city
// given the city's UTC offset
function calcTime(offset) {
//function calcTime(city, offset) {
// create Date object for current location
d = new Date();
//set options
var options = { weekday: "short", year: "numeric", month: "short",
day: "numeric", hour: "numeric", minute: "numeric", second: "numeric" };
// convert to msec
// add local time zone offset
// get UTC time in msec
utc = d.getTime() + (d.getTimezoneOffset() * 60000);
// create new Date object for different city
// using supplied offset
nd = new Date(utc + (3600000*offset));
// return time as a string
//return "The local time in " + city + " is " + nd.toLocaleString();
//return nd.toLocaleString();
return nd.toLocaleString("en-US", options);
}
Date.prototype.stdTimezoneOffset = function() {
var jan = new Date(this.getFullYear(), 0, 1);
var jul = new Date(this.getFullYear(), 6, 1);
return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
}
Date.prototype.dst = function() {
return this.getTimezoneOffset() < this.stdTimezoneOffset();
}
var today = new Date();
if (today.dst()) document.getElementById('dst').innerHTML = '';
答案 0 :(得分:1)
这里是将PST时间转换回UTC,然后应用本地偏移量的一种方法。
function submitfunction() {
var value = document.getElementById("PSTPDT").value;
var parts = value.split(':');
var now = new Date();
var year = now.getFullYear();
var month = now.getMonth();
var date = now.getDate();
var offset = now.getTimezoneOffset()
var local = new Date(year, month, date, parts[0], parts[1], parts[2]);
local.setMinutes(local.getMinutes() + 420 - offset);
var result = document.getElementById("result");
result.innerHTML = local
}