Jquery UI Datepicker 能否以与最初保存日期的格式不同的格式显示日期?

Can Jquery UI Datepicker Display Date In a Format that is Different from the Format Date Was Originally Saved In?

我有一个设置了这种格式的日期选择器,并且与我页面上的一个文本框相关联(ASP MVC 视图):

$(function () {
            $("#MyDateTextbox").datepicker({
                dateFormat: "dd-M-yy",
                showOn: "button",               
                buttonImage: "@Model.BaseURLOfSite" + "/Images/calendar.gif",
                buttonText: "Calendar"
            });
        });

如果文本字段最初是空的,我 select 来自控件的日期,并且该日期保存在注明的 dateFormat 中,当我再次单击我的文本框时,日历会打开到该日期那被保存了。 例如)“2020 年 12 月 31 日”

但是,如果文本字段已经有一个格式类似于“04/13/2020”的日期,那么在将选择器添加到页面之前,该值已保存到文本字段(和数据库)中,当我单击与文本框关联的日期选择器图标,页面锁定,或者日期选择器打开并突出显示今天的日期。

使用日期选择器控件设置和保存的新日期:没问题。 现有日期(不同格式),并通过数据选择器控件访问:存在上述问题。

日期选择器有一个 beforeShow 选项,我将其用于以下解决方案,它可以是 viewed here

为此,我将输入元素的现有值转换为日期选择器可以解释的字符串,然后设置日期:

$(".datepicker").datepicker({
        dateFormat: "dd-M-yy",
        showOn: "button",               
        buttonText: "Calendar",
        beforeShow: function(ele, obj){

            // Current value
            var existing_date = $(ele).val();

            // If it contains a / then it's not formatted right
            if(existing_date.indexOf('/') > -1){

                // Using new Date and Date.parse gives us
                // Mon Apr 13 2020 00:00:00 GMT-0500 (Central Daylight Time)
                var new_date = new Date(Date.parse(existing_date));

                // Set the date
                $(ele).datepicker("setDate", new_date);

            }

        }
});

我不确定这是最好的方法,但这是一个开始。希望对您有所帮助!