繁体   English   中英

如何使用Javascript / JQuery将date_select值构造为单一日期格式?

[英]How to construct date_select values into single date format using Javascript/JQuery?

我的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个单独的值发送到控制器中的一个日期中,那么这也很棒,但是我也不知道该如何做(初学者)。

谢谢!

这个想法与@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"
        }
    );
)};

前面加上“ 0”的另一种方式是使用以下代码(仅列出了一部分代码):

day = ("0" + day).slice(-2);

month = ("0" + month).slice(-2);

这是将“ 0”添加到开头,然后使用最后两个字符。 请注意,这两种方法都将这些值返回给字符串。

首先,我要确保用户在每个字段中都添加了一个数字。 您可以自己进行更广泛的检查,但让我开始使用.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"
        }
    );
)};

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM