gpt4 book ai didi

javascript - 添加月份到 javascript 的 setMonth 显示 0

转载 作者:行者123 更新时间:2023-12-03 09:55:51 25 4
gpt4 key购买 nike

我遇到了一个问题,我不确定如何解决;所以协议(protocol)是我有一个 javascript 函数,它获取用户选择的日期,并根据另一个选择添加到日期 6 o 12 个月,奇怪的是,当您选择 6 月的日期并使其成为日期时添加 6 个月,我得到的返回值是 0 个月,12 月应该是 12,如果您选择 12 月并添加 12 个月,我得到的返回值是 0。这是我的代码

        var date1 = $("#date_begin").val();
var days= date1[0] + date1[1];
var month= date1[3] + date1[4];
var year= date1[6] + date1[7] + date1[8] + date1[9];

var actualDate = new Date(year,month,days);

actualDate.setMonth(actualDate.getMonth() + 6);//add 6 months
$("#date_finish").val(actualDate.getDate()+"-"+actualDate.getMonth()+"-"+actualDate.getFullYear());

如您所见,我将日期直接打印到文本框。另外,对于第一个框中的日期选择,我使用 jquery 的日期选择器并选择了此选项

 $("#date_begin").datepicker("option", "dateFormat", "dd-mm-yy");

我一直在尝试解决这个问题,但我不知道该怎么做。

希望大家能帮帮我。

最佳答案

月份从 0 开始索引。六月是 5 而不是 6。你算出来的实际上是7月(6)+6个月=明年1月(0)。

如果您可以将日期字符串转换为 Date 构造函数接受的格式,那么这可能是创建日期对象的更简单的方法。但您需要注意,在接受的格式方面,浏览器之间存在一些差异。

如果日期来自用户,那么您应该使用对用户有意义的日期格式,并在必要时使用可以使用该日期格式的库。

当日期来自与服务器的通信时,我喜欢使用 JSON.stringify 生成的相同格式(日期看起来像 2015-06-09T21:42:25.816Z),并且我使用 es5-shim.js确保 new Date(string) 构造函数可以读取该格式的字符串。

Mozilla's developer site 上有一些有关使用 new Date(string) 构造函数解析日期字符串的信息。 .

关于javascript - 添加月份到 javascript 的 setMonth 显示 0,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30743118/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com