当前位置: 首页 > 面试题库 >

toLocaleDateString()减去一天

曾华翰
2023-03-14
问题内容

我正在从SQL数据库中提取日期,该日期将其视为从午夜开始的日期。当我开始使用toLocaleDateString()它们时,它会正确格式化它们,但是不会浪费一天。

格式化之前: 2011-09-01T00:00:00

格式化后: 8/31/2011

代码:

plan.dateReceived = new Date(plan.dateReceived).toLocaleDateString()+','+plan.dateReceived;

问题答案:

如果您分段运行代码,则会注意到new Date('2011-09-01T00:00:00')产生的输出类似Wed Aug 31 2011 20:00:00 GMT-0400 (EDT)(我的html" target="_blank">计算机现在处于EDT中)。

这是因为(doc):

假定时区的差异

给定日期字符串为“ 2014年3月7日”,parse()假定为本地时区,但是给定ISO格式(如“
2014-03-07”),则它将假定为UTC时区。因此,使用这些字符串生成的Date对象将代表不同的时间,除非系统设置了UTC的本地时区。这意味着,两个看起来相等的日期字符串可能会导致两个不同的值,具体取决于要转换的字符串的格式(此行为在ECMAScript第6版中已更改,因此都将被视为本地)。

将其转换为语言环境日期字符串会将其转换为适合浏览器语言环境的字符串。 文档指出“默认值为运行时的默认时区”。

如果要确保字符串采用UTC时间,请使用

new Date('2011-09-01T00:00:00').toLocaleDateString('en-US', {timeZone: 'UTC'})


 类似资料:
  • 问题内容: 同时支持MySQL和SQL Server我需要从日期中减去几天。可以使用ANSI SQL完成此操作,还是需要维护两个版本? 例如。我有这个用于MySQL: 问题答案: ANSI SQL 2003规范没有公开可用的版本,但是没有厂商完全支持它。无论如何,这两者之间的语法有足够的差异,可以为每个编写不同的代码。 MySQL具有以下功能: SQL Server具有一个功能(不带下划线): 同

  • toLocaleDateString 方法 根据本地时间把 Date 对象的日期部分转换为字符串,并返回结果。 语法: dateObject.toLocaleDateString(); 返回值: dateObject 的日期部分的字符串表示,以本地时间区表示,并根据本地规则格式化。 示例: var DATE = new Date(); console.log( DATE.toL

  • 描述 (Description) toLocaleDateString()方法将日期转换为字符串,使用操作系统的语言环境约定返回“time”部分。 语法 (Syntax) 下面给出了toLocaleDateString()方法的语法。 Date.toLocaleDateString() 返回值 (Return Value) 使用操作系统的语言环境约定返回“日期”部分。 例子 (Example)

  • 描述 (Description) toLocaleDateString()方法将日期转换为字符串,使用操作系统的语言环境约定返回“time”部分。 语法 (Syntax) 下面给出了toLocaleDateString()方法的语法。 Date.toLocaleDateString() 返回值 (Return Value) 使用操作系统的语言环境约定返回“日期”部分。 例子 (Example)

  • Javascript date toLocaleDateString()方法将日期转换为字符串,使用操作系统的语言环境约定返回“日期”部分。 语法 (Syntax) Date.toLocaleString() 返回值 (Return Value) 使用操作系统的语言环境约定返回“日期”部分。 例子 (Example) var dt = new Date(1993, 6, 28, 1

  • 问题内容: 我有两个对象: 我怎么能在几分钟内发现它们之间的不同? 问题答案: 使用或,如api所述 0 0