.toLocaleDateString 的输出会根据用户的时区而变化吗?

问题描述 投票:0回答:1

我正在为 CRUD 函数的一个数据库表编写一些 JavaScript,用于标识数据项的 ID 字段之一是日期。使用 AJAX 提取此数据时,它采用完整的 JavaScript 数据格式:

Thu Apr 25 2019 00:00:00 GMT+0100 (British Summer Time)

这会导致问题,因为当它被发送时,Kendo UI 将其更改为 UTC,在这种情况下,日期更改为 4 月 24 日,这意味着我们的后端代码找不到记录。

我尝试解决这个问题的方法是在使用

.toLocalDateString
时更改此字段。这解决了我的问题,因为它似乎只是切断了有关时区的信息,并且只给了我后端接受的
DD/MM/YYYY

我的问题是:如果该程序在美国东部等地区使用,这是否会产生预期的效果(忽略时区,只给我日期)。

由于我在英国,并且我们的时区目前是英国夏令时间,这是拉入原始数据所在的时区,所以这只是因为我在 BST 才有效吗?如果我在东部标准时间,晚了 5 或 6 小时,是否会

.toLocaleDateString
导致这一天倒退 1?

我查看了文档,它只说“使用本地约定”,但我不清楚其含义。

编辑: 我从 AJAX 请求中得到了

Mon May 13 2019 00:00:00 GMT+0100 (British Summer Time)
回复。当我发送回来时,我对数据进行字符串化,并将其字符串化为:
"2019-05-12T23:00:00.000Z"
,采用 UTC 格式,从而导致了问题。

javascript date datetime kendo-ui
1个回答
0
投票

Date 实例的 toLocaleDateString() 方法返回一个字符串,其中包含用户代理时区中指定日期的日期部分的语言敏感表示形式。在支持 Intl.DateTimeFormat API 的实现中,此方法只需调用 Intl.DateTimeFormat。来自MDN

© www.soinside.com 2019 - 2024. All rights reserved.