似乎JavaScript的Date()函数只能返回本地日期和时间.无论如何有时间为特定时区,例如GMT-9?
结合@ Esailija和@ D3mon-1stVFW,我想出来了:你需要有两个时区偏移,一个用于本地时间,一个用于目的地时间,这里是工作代码:
var today = new Date();
var localoffset = -(today.getTimezoneOffset()/60);
var destoffset = -4;
var offset = destoffset-localoffset;
var d = new Date( new Date().getTime() + offset * 3600 * 1000)
Run Code Online (Sandbox Code Playgroud)
这里有一个例子:http://jsfiddle.net/BBzyN/3/
Esa*_*ija 22
var offset = -8;
new Date( new Date().getTime() + offset * 3600 * 1000).toUTCString().replace( / GMT$/, "" )
"Wed, 20 Jun 2012 08:55:20"
Run Code Online (Sandbox Code Playgroud)
<script>
var offset = -8;
document.write(
new Date(
new Date().getTime() + offset * 3600 * 1000
).toUTCString().replace( / GMT$/, "" )
);
</script>Run Code Online (Sandbox Code Playgroud)
E. *_*rim 12
您可以在一行中执行此操作:
let d = new Date(new Date().toLocaleString("en-US", {timeZone: "timezone id"})); // timezone ex: Asia/Jerusalem
Run Code Online (Sandbox Code Playgroud)
var today = new Date();
var offset = -(today.getTimezoneOffset()/60);
Run Code Online (Sandbox Code Playgroud)