从服务器我得到一个datetime变量的格式:6/29/2011 4:52:48 PM,它是UTC时间。我想使用JavaScript将其转换为当前用户的浏览器时区。
如何使用JavaScript或jQuery来做到这一点?
从服务器我得到一个datetime变量的格式:6/29/2011 4:52:48 PM,它是UTC时间。我想使用JavaScript将其转换为当前用户的浏览器时区。
如何使用JavaScript或jQuery来做到这一点?
当前回答
如果你有
“2021 - 12 - 28 - t18:00:45.959z”格式
你可以在js中使用这个:
// myDateTime is 2021-12-28T18:00:45.959Z
myDate = new Date(myDateTime).toLocaleDateString('en-US');
// myDate is 12/28/2021
myTime = new Date(myDateTime).toLocaleTimeString('en-US');
// myTime is 9:30:45 PM
你只需要输入你的区域字符串而不是“en-US”(例如。“fa-IR”)。
你也可以使用toLocaleTimeString的选项,比如{小时:'2-digit',分钟:'2-digit'}
myTime = new Date(myDateTime).toLocaleTimeString('en-US',{ hour: '2-digit', minute: '2-digit' });
// myTime is 09:30 PM
toLocaleTimeString和toLocaleDateString的更多信息
其他回答
如果你有
“2021 - 12 - 28 - t18:00:45.959z”格式
你可以在js中使用这个:
// myDateTime is 2021-12-28T18:00:45.959Z
myDate = new Date(myDateTime).toLocaleDateString('en-US');
// myDate is 12/28/2021
myTime = new Date(myDateTime).toLocaleTimeString('en-US');
// myTime is 9:30:45 PM
你只需要输入你的区域字符串而不是“en-US”(例如。“fa-IR”)。
你也可以使用toLocaleTimeString的选项,比如{小时:'2-digit',分钟:'2-digit'}
myTime = new Date(myDateTime).toLocaleTimeString('en-US',{ hour: '2-digit', minute: '2-digit' });
// myTime is 09:30 PM
toLocaleTimeString和toLocaleDateString的更多信息
tl;dr (new Date('6/29/2011 4:52:48 PM UTC')).toString()
源字符串必须指定时区或UTC。
一行程序:
(new Date('6/29/2011 4:52:48 PM UTC')).toString()
结果在我的一个web浏览器:
"Wed Jun 29 2011 09:52:48 GMT-0700 (Pacific Daylight Time)"
这种方法甚至适当地选择标准/日光时间。
(new Date('1/29/2011 4:52:48 PM UTC')).toString()
结果在我的浏览器:
"Sat Jan 29 2011 08:52:48 GMT-0800 (Pacific Standard Time)"
对我来说,最简单的方法似乎很有用
datetime.setUTCHours(datetime.getHours());
datetime.setUTCMinutes(datetime.getMinutes());
(我认为第一行可以足够了,但有时区,在几个小时的分数)
我在safari/chrome/firefox浏览器中使用这种方法效果很好:
const localDate = new Date(`${utcDate.replace(/-/g, '/')} UTC`);
我写了一个漂亮的小脚本,它采用UTC纪元并将其转换为客户端系统时区,并以d/m/Y H: I:s(类似于PHP date函数)格式返回:
getTimezoneDate = function ( e ) {
function p(s) { return (s < 10) ? '0' + s : s; }
var t = new Date(0);
t.setUTCSeconds(e);
var d = p(t.getDate()),
m = p(t.getMonth()+1),
Y = p(t.getFullYear()),
H = p(t.getHours()),
i = p(t.getMinutes()),
s = p(t.getSeconds());
d = [d, m, Y].join('/') + ' ' + [H, i, s].join(':');
return d;
};