【发布时间】:2016-10-03 11:09:58
【问题描述】:
我正面临 JS 的 setMonth 函数的非常奇怪的行为。 单击图像时,我将显示一个日历,其中包含当前月份的所有日期以及下个月和上个月的某些日期(灰色)。
只要选择的当前日期是任何一个月的 31 日。假设 2017 年 5 月 31 日我选择我将在文本字段中设置。如果我点击 2017 年 6 月 2 日,而不是将文本字段设置为 2017 年 6 月 2 日,它会设置为 2017 年 7 月 2 日?
请指出这里出了什么问题。
使用的代码sn-p如下
var tempDate = new Date(current); //Suppose : current --> Wed May 31 16:09:00 UTC+0530 2017
var dayOfMonth = parseInt(element.text(), 10); //Suppose : element.text() --> 2
tempDate.setMonth(tempDate.getMonth() + (dayOfMonth > 15 ? -1 : 1)); //tempDate.getMonth() + (dayOfMonth > 15 ? -1 : 1) returns 10
tempDate.setDate(dayOfMonth);
//Output Expected : 02 June 2017 but it gives 02 July 2017
【问题讨论】:
-
不太清楚你在问什么,但月份是从 0 开始的。
-
分享复制您的问题的简约示例。而且,不清楚您对第 31 天的要求是什么。
Tue Oct 31&Output Expected : 02 June 2017 but it gives 02 July 2017&suppose 31 may 2017 I select i will set in a textfield. If I click on 2 june 2017 rather then setting textfield to 2 june 2017 it sets 3 July 2017。而您发布的图片只是假设您设置了错误的日期选择器日期格式,但与您所有的身体问题所谈论的内容完全无关 -
是的,更新了问题。例如在设置日期时实际上犯了错误。
标签: javascript date datetime