设置为2014年12月31日的新Date()改为说12月1日

user2859409:

我正在尝试将字符串转换为Date对象,并且它适用于所有日期,除了12月31日(按对象说12月1日而不是31日)之外。我不知道为什么。这是我的JavaScript代码:

var dt = new Date();
dt.setDate("31");
dt.setMonth("11");
dt.setFullYear("2014");

但我的变量值为:

Mon Dec 01 2014 11:48:08 GMT+0100 (Paris, Madrid)

如果我在其他任何日期都这样做,则我的对象将返回适当的值。你知道我做错了什么吗?

xdazz:

setMonth 应该之前 setDate:(少于31天的月份不安全

var dt = new Date();
dt.setFullYear(2014);
dt.setMonth(11);
dt.setDate(31);

并且setMonth的第二个参数也可以用来设置日期。

var dt = new Date();
dt.setFullYear(2014);
dt.setMonth(11, 31);


如果没有为构造函数提供任何参数,它将根据系统设置使用 当前日期和时间

因此,单独使用setMonthsetDate仍会导致意外结果。

如果设置的值大于其逻辑范围,则该值将自动调整为相邻的值

例如,如果今天是2014-09-30,则

var dt = new Date();
dt.setFullYear(2014); /* Sep 30 2014 */
dt.setMonth(1);       /* Mar 02 2014, see, here the auto adjustment occurs! */
dt.setDate(28);       /* Mar 28 2014 */

为避免这种情况,请直接使用构造函数设置值。

var dt = new Date(2014, 11, 31);

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

将ISO日期时间格式设置为2014年3月12日12:00:00

当输入日期为 12 月 30 日或 31 日时,Google 脚本格式将日期关闭 1 年

熊猫将季节定义为6月1日至7月30日,而不是1月1日至12月31日

将日期从“ 2009年12月12日”格式转换为“ 2009年12月31日”

创建9999年12月31日(UTC)的java.sql.Date的最简单方法?

jQuery Date()函数返回1969年12月31日,而不是当前日期

嗨,我需要这样的时间@“ 2014年1月12日,晚上11:45”

在PDF报告中以2014年1月12日12:10格式显示日期时出现的问题

当我设置日期并重新启动时,日期更改为2016年2月11日和2014年1月1日

自1989年12月31日上午12:00以来的秒数

为什么在2010年12月31日返回1作为一年中的第几周?

尽管记录较年轻,但Oracle SQL DATE数据类型返回的最新日期为1999年12月31日

获取从1月1日到12月31日的一年中的星期一列表的最佳方法是什么

不增加年份数字java.sql.Date无法表达2019年12月31日

是什么导致MySQL时间戳等于1969年12月31日

如何在Oracle SQL中以日文格式(2008年12月31日)获取日期

Mysql在12月31日14:25保存文章,但数据功能显示2019年的日期

如何使用Java8 Date API将“ 2009年12月15日”解析为Date?

用给定年份的从 1 月 1 日到 12 月 31 日开始的日期填充一列

=IF(OR(AND - 如何使用自动日历句柄开始日期在 12 月 31 日之前和结束日期晚于 1 月 1 日

获取正确的12月31日星期几

日期命令给12月31日提供了错误的星期数

jQuery日期格式为2014年11月18日

如何转换2014年1月1日格式的GetDate()?

ObjC 日期总是返回 2017 年 12 月 25 日

如何将“ 2016年11月20日12:00:00 AM”解析为LocalDateTime?

在Swift中将Double(自1899年12月30日以来的天数)转换为Date?

如何在vi编辑器“ 2014年2月12日下午1:00:53 PM”中找到基于日期的字符串

ValueError:时间数据“ 2017年12月31日”与格式“%d-%m-%Y”不匹配