我的html表单中有一个date_select。我知道它将日月和年分开。我正在尝试研究如何在我的Javascript中以YYYY-MM-DD格式构建日期,以便将此日期发送给我的控制器以与其他日期进行比较。
这是我到目前为止所做的(我是JQuery / JS初学者):
$(document).on('click', "#check-button", function(){
var year = $("#event_day_1i").val();
var month = $("#event_day_2i").val();
var day = $("#event_day_3i").val();
var selectedDate = [year + "-" + month + "-" + day];
...
$.ajax({
url: '/events/check',
data: {checkList: checkList , selected_date: selectedDate },
method: "POST"
}
);
)};
但是这会创建诸如“2016-2-4”而不是“2016-02-04”的日期。解决这个问题的最佳方法是什么?
如果你有一个解决方案,允许我将3个单独的值发送到我的控制器中的日期,那么这也很棒,但我不知道我会怎么做(初学者)。
谢谢!
答案 0 :(得分:3)
这个想法与@Phillip的回答相同。唯一的区别是整数计数和字符长度计数。
使用 parseInt()将其转换为整数。
使用长度来计算字符或字符串。
检查值是否为单个字符,然后追加" 0"对它,例如1将成为" 01"。
$(document).on('click', "#check-button", function(){
var year = $("#event_day_1i").val();
var month = $("#event_day_2i").val();
var day = $("#event_day_3i").val();
if (day.length < 2) { day = '0' + day; }
if (month.length < 2) { month = '0' + month; }
var selectedDate = [year + "-" + month + "-" + day];
...
$.ajax({
url: '/events/check',
data: {checkList: checkList , selected_date: selectedDate },
method: "POST"
}
);
)};
答案 1 :(得分:2)
另一种预先设置“0”的方法是使用以下内容(仅列出部分代码):
day = ("0" + day).slice(-2);
month = ("0" + month).slice(-2);
这样做是将“0”添加到开头,然后取最后两个字符。请注意,这种方式和其他方式都将这些值返回给字符串。
答案 2 :(得分:1)
首先,我要确保用户在每个字段中添加了一个数字。您可以自己进行更广泛的检查,但我已经开始使用.parseInt()
JS方法了。
在该变量中有一个整数存储后,检查它是否小于10.也就是说,只有一位数。您可能还想检查它是否也大于0.
一旦你知道了,就把它前面的字符串“0”连接起来。即:9
变为09
。
$(document).on('click', "#check-button", function(){
var year = $("#event_day_1i").val();
var month = $("#event_day_2i").val();
var day = $("#event_day_3i").val();
month = month.parseInt();
day = day.parseInt();
if (month < 10) {
month = "0" + month;
}
if (day < 10) {
day = "0" + day;
}
var selectedDate = [year + "-" + month + "-" + day];
...
$.ajax({
url: '/events/check',
data: {checkList: checkList , selected_date: selectedDate },
method: "POST"
}
);
)};