jQuery日期选择器问题:格式化日期。

4

我在jquery中有两个日期选择器,我会将其中一个选择器的日期加上一天并赋值给另一个日期选择器,代码如下:

 /*assign date pickers*/
        $("#MainContent_txtActualShipDate").datepicker({
            dateFormat: 'mm/dd-yyyy',
            changeMonth: true,
            changeYear: true,
            showOtherMonths: true,
            selectOtherMonths: true
        });

        $("#MainContent_txtExpectedShipDate").datepicker({
            changeMonth: true,
            changeYear: true,
            showOtherMonths: true,
            selectOtherMonths: true,
            onSelect: function (selectedDate) {
                var date = $(this).datepicker('getDate');

                if (date) {
                    date.setDate(date.getDate() + 1);
                    $("#MainContent_txtActualShipDate").val(date);
                }

            }
        });

请注意,onSelect函数添加了一个单独的日期并将其分配给#MainContent_txtActualShipDate,但它得到的值是"TUE APR 24 2012 00:00:00"。我希望它简单地是"04/24/2012",即mm/dd/yyyy格式。我阅读了jquery ui文档,并查看了一些stackoverflow上的示例,但它们都没有起作用。有没有人能够查看这段代码并编辑以获取我想要的格式?

编辑

这是我的更改:

        $("#MainContent_txtExpectedShipDate").datepicker({
            dateFormat: 'mm/dd-yyyy',
            changeMonth: true,
            changeYear: true,
            showOtherMonths: true,
            selectOtherMonths: true,
            onSelect: function (selectedDate) {
                var date = $(this).datepicker('getDate');

                if (date) {
                    date.setDate(date.getDate() + 1);
                    var formattedDate = $.datepicker.formatDate('mm/dd-yyyy', date);
                    $("#MainContent_txtActualShipDate").val(formattedDate); 

//                    $("#MainContent_txtActualShipDate").val(date);
                }

            }
        });

但它显示了年份两次,04/12/20122012。

答案

以下是其他人在未来所使用的方法:

/*assign date pickers*/
        $("#MainContent_txtActualShipDate").datepicker({
            dateFormat: 'mm/dd/yy',
            changeMonth: true,
            changeYear: true,
            showOtherMonths: true,
            selectOtherMonths: true
        });

        $("#MainContent_txtExpectedShipDate").datepicker({
            dateFormat: 'mm/dd/yy',
            changeMonth: true,
            changeYear: true,
            showOtherMonths: true,
            selectOtherMonths: true,
            onSelect: function (selectedDate) {
                var date = $(this).datepicker('getDate');

                if (date) {
                    date.setDate(date.getDate() + 1);
                    var formattedDate = $.datepicker.formatDate('mm/dd/yy', date);
                    $("#MainContent_txtActualShipDate").val(formattedDate); 
                }

            }
        });
        /*end assign date pickers*/

谢谢


明白了,我的格式不对,需要使用“mm/dd/yy”。 - oJM86o
4个回答

4
请使用formatDate()函数:
var formattedDate = $.datepicker.formatDate('mm/dd/yy', date);
$("#MainContent_txtActualShipDate").val(formattedDate);

由于某种原因,它显示了两次年份...结果是4/26/20122012 ?? - oJM86o
你的日期格式化是正确的,但结果显示为:4/26/20122012?请查看我在编辑中的代码。 - oJM86o

0
尝试像这样设置日期:

$('#MainContent_txtActualShipDate').datepicker("setDate", date);

如果这不起作用,

$("#MainContent_txtActualShipDate").val(date.getMonth()+"/"+date.getDate()+"/"+date.getFullYear());


0

你使用了错误的日期格式,应该是'dd/mm/yy'。

我倾向于给需要日期选择器的任何字段添加一个类。因此,你只需要这样做...

$(".DatePick").datepicker({ dateFormat: 'dd/mm/yy', gotoCurrent: true });

避免不必要的多次分配。


0

你错过了dateFormat,请尝试这个:

/*assign date pickers*/
    $("#MainContent_txtActualShipDate").datepicker({
        dateFormat: 'mm/dd/yy',
        changeMonth: true,
        changeYear: true,
        showOtherMonths: true,
        selectOtherMonths: true
    });

    $("#MainContent_txtExpectedShipDate").datepicker({
        dateFormat: 'mm/dd/yy',
        changeMonth: true,
        changeYear: true,
        showOtherMonths: true,
        selectOtherMonths: true,
        onSelect: function (selectedDate) {
            var date = $(this).datepicker('getDate');

            if (date) {
                date.setDate(date.getDate() + 1);
                var formattedDate = $.datepicker.formatDate('mm/dd/yy', date);
                $("#MainContent_txtActualShipDate").val(formattedDate); 
            }

        }
    });

这个不起作用,它仍将长字符串分配给txtActualShipDate。 - oJM86o
1
你需要将yyyy减少到yy。 - Zaheer Ahmed

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接