我目前正在编写一个JavaScript函数,它从字符串中提取日期,然后解析它以设置日期过滤器的开始和结束日期。但是,我遇到了日期解析部分的问题。
$("#startDateF").data("initialValue", startDateString);
$("#endDateF").data("initialValue", endDateString);
字符串
这些行将用于一个reset按钮函数,该函数将检索这些值并将日期过滤器的当前值设置回initialValues。
代码如下:
var cDate = dText.match(/\d{2}-\d{2}-\d{4}/)[0];
console.log(cDate);
let initialStartDate = new Date(cDate);
let initialEndDate = new Date(initialStartDate.getFullYear(), initialStartDate.getMonth() + 1, initialStartDate.getDate());
startDateString = formatDate(initialStartDate);
endDateString = formatDate(initialEndDate);
$("#startDateF").data("initialValue", startDateString);
$("#endDateF").data("initialValue", endDateString);
function formatDate(date) {
let day = ("0" + date.getDate()).slice(-2);
let month = ("0" + (date.getMonth() + 1)).slice(-2);
let year = date.getFullYear();
return day + "-" + month + "-" + year;
}
型
我尝试使用 formatDate 函数来格式化日期,但它似乎无法正常工作。当我使用这个方法时,它将startDate和endDate设置为aN-aN-NaN。我希望startDate设置为cDate,endDate设置为相同的日期,但在下一个月。例如,cDate = 16-04-2023startDate = 16-04-2023 endDate = 16-05-2023*
2条答案
按热度按时间aamkag611#
假设您的cDate是dd-mm-yyyy,那么我建议使用这个简化的脚本
个字符
eoigrqb62#
除了解析
initialStartDate
变量时,您的代码没有任何问题。JavaScript中的Date构造函数不直接接受格式为'dd-mm-yyyy'的日期字符串。要从自定义日期字符串创建Date对象,您需要解析单独的日、月和年组件,并将它们作为参数以适当的顺序传递给构造函数。基本上你可以加上这个
字符串
并且会很好的工作
这里是完整的代码tho
型
希望有帮助:D