繁体   English   中英

在 javascript 中设置一个独立于浏览器时区和时间的特定日期和时间

[英]Set a specific date and time in javascript independant of the browser timezone and time

我的问题看起来很简单,但我还找不到合适的简单解决方案。 用例:世界上任何人都应该能够访问网站,并通过按钮将日期设置为未来 3、5 或 10 天,德国的 23:59:59。 这应该与浏览器位置或客户端浏览器上错误的日期/时间设置无关。 我可以通过 php 注入获取服务器日期/时间,我可以将其用作参考。 所以理想情况下我可以使用它,但只要我对日期进行任何操作,它总是在浏览器的时区中处理。 因此,如果我将时间设置为 23:59:59,那么它是根据浏览器时区设置的。 知道如何使用独立于浏览器的时区吗? 还应考虑夏季。

基本上我需要一个 function,比如:SetDate(Today_In_Germany + x days at 23:59:59)

示例代码:

var t_date =  new Date(); 
t_date.setDate(t_date.getDate() + 5)); //Add 5 days to current day
t_date.setHours(23,59,00,00); //Set it to 23:59

这在一个时区内非常有效。 但是,如果您从不同的时区访问 function,它会将其设置为您所在时区的 23:59,而不是我要设置的德国时区。 另外,如果您的计算机时钟错误,我会得到错误的时间。

Date object 没有该功能。 新的临时提案确实如此。

let dt = Temporal.ZonedDateTime.from({
  timeZone: 'Europe/Berlin',
  year: 2021,
  month: 9,
  day: 27,
  hour: 23,
  minute: 59,
  second: 59
})

没有 Temporal,你需要像 MomentJS 这样的库。

在 Barney 提到的 Temporal 实现发布之前,我将使用稍微修改过的 jabaas 方法。 我通过服务器端脚本注入德国今天 23:59:59 的 unix 时间戳。 然后我可以在未来的每一天自由添加 60x60x24 秒,我不会与时区混淆。 不是我最初想要的解决方案,而是适合我的解决方案。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM