如何使用js将UTC日期转换为本地时间? [复制]
Posted
技术标签:
【中文标题】如何使用js将UTC日期转换为本地时间? [复制]【英文标题】:How to convert the UTC date to local time with js? [duplicate] 【发布时间】:2019-09-03 19:43:12 【问题描述】:我想在我的页面中显示一张照片的上传日期,但我只能根据服务器时区显示日期。
假设我在 12 日 19:30 GMT-5 在家上传照片,因此服务器在 13 日 00:30 注册。
我想要的是检索用户已知的日期(12th 19:30)。
我所做的是获取客户端的时区并将该分钟数添加到对象 Date,如下所示:
upload_date = response.upl_date;//This is the date I get from server (12:30)
var d = new Date();//Here I get the current date of client...
var timezone = d.getTimezoneOffset();//...to get the timezone offset in minutes (300)
var dd = new Date(upload_date);//Here I turn my server date into an object
dd.setMinutes(dd.getMinutes() - timezone);//Substract the minutes to the hour of the object
console.log(dd);//And voilá, I get 19:30, but the day keeps being 13
尽管分钟会影响对象 Date 的小时数,但它不会影响天数,因此它一直是第 13 天而不是第 12 天。
当然,例如,在服务器端是 19:00 和客户端是 14:00 时,它可以完美运行,但是我可以做些什么来更改日期以适应时区更改?我应该尝试另一种方式吗?或者 if() 的一些技巧?
【问题讨论】:
用户上传图片时,将GTM保存到服务器。检索时检索并相应地转换为客户端时区 【参考方案1】:希望对你有所帮助:
var options =
timeZone: "America/New_York", //you can use any timezone here
year: 'numeric',
month: 'numeric',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
second: 'numeric'
;
var formatter = new Intl.DateTimeFormat([], options);
var UTCTime = "2017-09-03T02:00:00Z";
var localTime = formatter.format(new Date(UTCTime));
var currentTime = formatter.format(new Date());
console.log(currentTime, localTime);
【讨论】:
@jhpratt 你说得对,这个编辑毫无意义,我已经回滚了。以上是关于如何使用js将UTC日期转换为本地时间? [复制]的主要内容,如果未能解决你的问题,请参考以下文章