为了账号安全,请及时绑定邮箱和手机立即绑定

Javascript 将给定时区的日期转换为本地日期

Javascript 将给定时区的日期转换为本地日期

哔哔one 2023-02-24 16:54:28
在 Javascript 中,给定一个表示日期的字符串,如下所示:var dateFromPrague = "2011-10-10T14:48:00"知道上面的日期是来自特定本地化的日期,比如欧洲/布拉格,我怎么能把这个日期翻译成当地时间?我知道我可以创建一个 Date 对象来指示时区偏移量,如下所示:var dateFromPrague = new Date("2011-10-10T14:48:00.000+02:00");然后我可以像这样从上面的日期获取本地日期:var dateFromPragueTolocalDate = dateFromPrague.toString();但布拉格偏移量并不总是 +02:00,因为它取决于是否应用夏令时(夏季或冬季)。那么我如何指示正确的时区,比如“欧洲/布拉格”,或者以某种方式实现这种翻译(不可能从服务器返回偏移量)?
查看完整描述

2 回答

?
慕尼黑5688855

TA贡献1848条经验 获得超2个赞

目前没有任何内置到 JavaScript 本身(或浏览器平台)中的东西可以让你这样做,不,你在图书馆的土地上。几年后您可能会使用Temporal,但它仍处于提案过程的早期阶段。提案中链接了一个 polyfill,但您想要使用的部分可能是临时命名的LocalDateTime(不是最终名称),这仍在进行中。

您可以使用的一个库是Moment Timezone。看起来像这样:

var a = moment.tz(dateFromPrague, "Europe/Prague");

现场示例:

var dateFromPrague = "2011-10-10T14:48:00";

var a = moment.tz(dateFromPrague, "Europe/Prague");

console.log(a.toDate());

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.27.0/moment.min.js"></script>

<script src="https://cdnjs.cloudflare.com/ajax/libs/moment-timezone/0.5.31/moment-timezone-with-data.min.js"></script>


查看完整回答
反对 回复 2023-02-24
?
慕姐8265434

TA贡献1813条经验 获得超2个赞

您应该从服务器获取 UTC 日期,然后可以使用date.toLocaleDateString()转换为本地日期。这是典型的方法。



查看完整回答
反对 回复 2023-02-24
  • 2 回答
  • 0 关注
  • 211 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号