在 Javascript 中使用夏令时检查日期范围

     2023-03-24     122

关键词:

【中文标题】在 Javascript 中使用夏令时检查日期范围【英文标题】:Check Date Range with a place that uses Daylight Savings in Javascript 【发布时间】:2021-02-24 23:57:35 【问题描述】:

Javascript 中有没有办法检查具有给定经度/纬度和城市的位置是否使用夏令时?

我目前正在遍历来自不同位置的对象列表,需要以秒为单位计算它们的日期范围。

【问题讨论】:

【参考方案1】:

我们可以使用tz-lookup 模块根据位置的经纬度来确定 IANA 时区,如下所示。

我已切换到使用 Luxon 模块来获取每个位置的 UTC 偏移量(以分钟为单位)。一旦你有了这个,你应该能够得到每个城市之间的差异。

let IANAZone = luxon.IANAZone;
let locations = [
     lat: -33.865, lng: 151.209444, name: "Sydney",
     lat: 51.507222, lng: -0.1275, name: "London" ,
     lat: 42.7235, lng: -73.6931, name: "New York" ,
     lat: 39.739167, lng: -104.990278, name: "Denver",
     lat: 34.05, lng: -118.25, name: "Los Angeles"
];

locations = locations.map(loc => (  ...loc, timeZone: tzlookup(loc.lat, loc.lng) ));
   
let rows = [["Location", "Timezone", "UTC Offset (min)", "Current time"], ...locations.map(( name, timeZone ) => [name , timeZone, IANAZone.create(timeZone).offset(new Date()) + "", new Date().toLocaleString('sv',  timeZone )])];
rows = rows.map(row => row.map(s => s.padEnd(20)).join(""))
rows.forEach(row => console.log(row))
<script src="https://cdn.jsdelivr.net/npm/tz-lookup@6.1.25/tz.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/luxon/1.25.0/luxon.min.js"></script>

【讨论】:

padEnd(20) 是做什么的或者我在哪里可以阅读到这个? 刚刚更新了我想要应用此方法的问题,这样做是否有意义: new Date(endDate).toLocaleString('sv', timeZone - new Date (startDate).toLocaleString('sv', timeZone ? 是的,我在不同的时区有不同的位置,所以当我计算范围时,有些会有额外/更少的小时,而有些则没有。我要测试一下谢谢! 结果证明它不起作用。它不转换对象(仅字符串):/ @TerryLennox - 不要将toLocaleString 的字符串输出传递给Date 构造函数。 Date 构造函数会将其解释为 本地时间 - 而不是您想要的时区。最终Date 对象不能代表其他时区。您需要一个库,例如 Luxon。【参考方案2】:

这个问题似乎对你有一些有用的信息。

How to get a time zone from a location using latitude and longitude coordinates?

【讨论】:

使用 JavaScript 循环遍历日期范围

】使用JavaScript循环遍历日期范围【英文标题】:LoopthroughadaterangewithJavaScript【发布时间】:2011-05-1916:55:37【问题描述】:给定两个Date()对象,其中一个小于另一个,我如何在日期之间每天循环?for(loopDate=startDate;loopDate<endDate;lo... 查看详情

如何使用时区信息在 MySQL 中存储日期时间

...数据库中。但是,服务器位于美国,当我尝试存储在春季夏令时(在美国)的“无效”小时内的坦桑尼亚日期时间时遇到了问题。坦桑尼亚不做夏令时,所以时间是一个实际有效 查看详情

使用javascript验证用户输入日期是不是在给定的日期范围内

】使用javascript验证用户输入日期是不是在给定的日期范围内【英文标题】:Validateuserinputdatesareingivendaterangeusingjavascript使用javascript验证用户输入日期是否在给定的日期范围内【发布时间】:2013-05-0418:53:34【问题描述】:我是php... 查看详情

如果日期是进行 DST(夏令时)更改的实际日期,有没有办法在 Python 中推断?

】如果日期是进行DST(夏令时)更改的实际日期,有没有办法在Python中推断?【英文标题】:IsthereawaytoinferinPythonifadateistheactualdayinwhichtheDST(DaylightSavingTime)changeismade?【发布时间】:2021-11-2716:24:28【问题描述】:我想在Python中推断... 查看详情

确定日期夏令时的算法?

】确定日期夏令时的算法?【英文标题】:AlgorithmtodetermineDaylightSavingTimeofadate?【发布时间】:2010-09-0909:58:44【问题描述】:最初我在Actionscript中寻找解决方案。这个问题的重点是算法,当时钟必须切换夏令时时,它会检测精确... 查看详情

如何将用户的本地时间转换为多伦多时区,然后在 Javascript 中根据多伦多时间检查 dst?

】如何将用户的本地时间转换为多伦多时区,然后在Javascript中根据多伦多时间检查dst?【英文标题】:HowdoIconvertuser\'slocaltimetoTorontotimezoneandthencheckdstbasedonTorontotimeinJavascript?【发布时间】:2020-11-2802:33:11【问题描述】:现在我正... 查看详情

Java API 获得一年的夏令时边界

】JavaAPI获得一年的夏令时边界【英文标题】:JavaAPItogetdaylightsavingboundariesforayear【发布时间】:2017-11-1901:05:43【问题描述】:我有一个日期范围(开始日期和结束日期),并且需要知道这是否属于夏令时更改范围内。是否有任何... 查看详情

检查日期范围的最快方法

】检查日期范围的最快方法【英文标题】:Fastestwaytocheckdaterange【发布时间】:2009-05-2115:20:53【问题描述】:我将事件存储在SQLServer2005中,其中事件发生的时间很重要,并且必须存储在数据库中。在where子句中编写日期范围检查... 查看详情

通过忽略夏令时 javascript 将日期转换为 UTC

】通过忽略夏令时javascript将日期转换为UTC【英文标题】:ConvertdatetoUTCbyignoringDaylightSavingsjavascript【发布时间】:2017-03-0818:51:08【问题描述】:我在GMT+2时区和夏令时。我的要求是询问用户一个日期并将其转换为UTC而不考虑DST。当... 查看详情

在javascript中检查日期是不是有效[重复]

】在javascript中检查日期是不是有效[重复]【英文标题】:Checkingifadateisvalidinjavascript[duplicate]在javascript中检查日期是否有效[重复]【发布时间】:2012-05-2207:34:01【问题描述】:可能重复:Detectingan“invaliddate”DateinstanceinJavaScriptjavas... 查看详情

r-使用不同数据框架中的日期,检查日期范围是否包含某个值。(代码片段)

我正在做一个项目,分析信用卡公司的利率随时间的变化,以及同期常见信用卡公司的推特。目标是看我们是否能根据信用卡公司的推特账号来预测他们何时会改变利率。我有两个数据框架:1)如果利率在某个日期发生了变化[r... 查看详情

在 Oracle 中,如何检测夏令时开始/结束的日期?

】在Oracle中,如何检测夏令时开始/结束的日期?【英文标题】:InOracle,howcanIdetectthedateonwhichdaylightsavingstimebegins/ends?【发布时间】:2010-09-2204:49:39【问题描述】:Oracle中是否有办法为我的语言环境选择夏令时切换的日期?稍微等... 查看详情

JavaScript 时区对于过去的夏令时转换规则是错误的

】JavaScript时区对于过去的夏令时转换规则是错误的【英文标题】:JavaScriptTimeZoneiswrongforpastDaylightSavingTimetransitionrules【发布时间】:2013-06-0112:16:58【问题描述】:2007年,我们改用夏令时的日子发生了变化。在该更改之前属于DST... 查看详情

检查日期是不是在过去 Javascript

】检查日期是不是在过去Javascript【英文标题】:CheckifdateisinthepastJavascript检查日期是否在过去Javascript【发布时间】:2012-01-0811:13:49【问题描述】:所有,我正在为日期选择器使用jQueryUI。尽管用户输入的日期是过去的,但我正在... 查看详情

在javascript中检查给定的日期格式

】在javascript中检查给定的日期格式【英文标题】:Checkgivendateformatinjavascript【发布时间】:2020-05-1813:25:41【问题描述】:您好,我在验证和确认给定日期的日期格式时遇到问题。管理员为输入​​输入有效的日期格式,用户在输... 查看详情

确定夏令时 (DST) 在 Java 中是不是在指定日期处于活动状态

】确定夏令时(DST)在Java中是不是在指定日期处于活动状态【英文标题】:DetermineWhetherDaylightSavingsTime(DST)isActiveinJavaforaSpecifiedDate确定夏令时(DST)在Java中是否在指定日期处于活动状态【发布时间】:2010-11-0619:47:31【问题描述】:我... 查看详情

在 Java 中获取时区的夏令时转换日期

】在Java中获取时区的夏令时转换日期【英文标题】:GetDaylightSavingTransitionDatesForTimeZonesinJava【发布时间】:2021-03-1812:22:38【问题描述】:我想知道用Java最简单的方法来获取未来夏令时将发生变化的日期列表。执行此操作的一种... 查看详情

在 Java 中获取时区的夏令时转换日期

】在Java中获取时区的夏令时转换日期【英文标题】:GetDaylightSavingTransitionDatesForTimeZonesinJava【发布时间】:2010-11-2918:54:18【问题描述】:我想知道用Java最简单的方法来获取未来夏令时将发生变化的日期列表。执行此操作的一种... 查看详情