JQuery Datepicker UI dateformat

时间:2014-08-02 01:37:40

标签: jquery datepicker

所以我有这个代码,它运作良好。

$('#txt').datepicker({
onClose: function (selectedDate) {
    var oneday = 1000 * 60 * 60 * 24; //ms*sec*min*hrs
    var today = new Date();
    var selected = new Date(selectedDate);
    var diff = parseInt((selected - today) / oneday);
    if (diff <= -1) {
        alert('Not valid. Pick a day in the future.');
        $('#txt').val('');
    } else if (diff <= 3 && diff >= 0) {
        alert('Hum...You know we need at least two days to be prepared, right?');
     //   $('#txt').val('');
    }
}
});

现在我需要使用以下日期格式:dd/mm/yy

如果我使用

$('#txt').datepicker({ dateFormat: "dd-mm-yy", onClose:(...)

我得到了我想要的日期格式,但onClose函数不再正常工作,因为var todayvar selected不会遵循新格式(数学会被破坏)。

我该怎么办?

3 个答案:

答案 0 :(得分:0)

使用以下(zh_CN)设置进行日期选择器设置,并更改您想要的任何内容,包括日期格式。

/* Chinese initialisation for the jQuery UI date picker plugin. */
/* Written by Cloudream (cloudream@gmail.com). */
jQuery(function($){
        $.datepicker.regional['zh-CN'] = {
                closeText: '关闭',
                prevText: '&#x3c;上月',
                nextText: '下月&#x3e;',
                currentText: '今天',
                monthNames: ['一月','二月','三月','四月','五月','六月',
                '七月','八月','九月','十月','十一月','十二月'],
                monthNamesShort: ['一','二','三','四','五','六',
                '七','八','九','十','十一','十二'],
                dayNames: ['星期日','星期一','星期二','星期三','星期四','星期五','星期六'],
                dayNamesShort: ['周日','周一','周二','周三','周四','周五','周六'],
                dayNamesMin: ['日','一','二','三','四','五','六'],
                weekHeader: '周',
                dateFormat: 'yy-mm-dd',
                firstDay: 1,
                isRTL: false,
                showMonthAfterYear: true,
                yearSuffix: '年'};
        $.datepicker.setDefaults($.datepicker.regional['zh-CN']);
});

所以,为了更简单,在你的情况下,你可以在调用datepicker函数之前简单地使用下面的代码:

jQuery(function($){
        $.datepicker.setDefaults({
                dateFormat: 'dd/mm/yy'
        });
});

答案 1 :(得分:0)

如果selectedDate的值'2-8-2014'使用dateFormat: 'dd-mm-yy'(代表8月2日),那么您可以转换为javascript Date对象,如下所示

var d = selectedDate.split('-');
var selected = new Date(d[2], d[1] - 1, d[0]);

您现在可以将其与var today = new Date();

进行比较

答案 2 :(得分:-1)

使用Javascript的Date对象
您必须将所选日期拆分为多个部分,如下所示:

var splitDate = selected.split("/");
var day = splitDate[0];
var month = splitDate[1];
var year = splitDate[2];

var selected = new Date(month + "/" + day + "/" + year);