2012-02-15 74 views
0

无论指定日期的方式,JQuery中是否有以日期为标准格式(mm/dd/yyyy)的方式在文本框中?日期输入控件MVC - mm/dd/yyyy格式,无论用户输入哪种格式日期

如果用户输入1/1/12或01/1/12或01/01/12,则应该变为01/01/2012。是否有任何插件可以做到这一点,因为我们必须确定它是有效日期(13/12/12或1/32/12或2/29/2011(闰年))。

+0

可能重复[使用Javascript:如何验证格式MM-DD-YYYY日期(http://stackoverflow.com/questions/276479/javascript-how -y-date-in-format-mm-dd-yyyy) – Rafay 2012-02-15 18:16:35

+0

我建议usig jQueryu UI的Caledar小部件。它为用户提供了一个清晰的界面,使其成为一个日期,而不需要通过手工来完成。 – 2012-02-15 18:17:54

+0

我不想验证日期。我正在尝试将该格式作为标准。恩。如果用户输入1/1/12,那么它应该变成01/01/2012模糊。 – Raja 2012-02-15 18:20:40

回答

1

我以前用过date.js。这非常方便。这不是一个输入控件,但它允许您轻松验证和重新格式化日期。

+0

哇,这是相当全面的。 – Raja 2012-02-15 18:26:13

0

下面是一个例子功能:的

function validateDate() { 
    var nums = $(this).val().match(/\d+/g); 
    var m = Number(nums[0]) - 1; //month starts from 0 
    var d = Number(nums[1]); 
    var y = (Number(nums[2]) < 100 ? 2000 : 0) + Number(nums[2]); 
    var date = new Date(y,m,d); 
    // this is where the date gets validated 
    m = (date.getMonth() < 9 ? '0' : '') + (date.getMonth()+1).toString(); 
    d = (date.getDate() < 10 ? '0' : '') + date.getDate().toString(); 
    y = date.getFullYear().toString(); 
    $(this).val(m+'/'+d+'/'+y); 
} 

$('#date').blur(validateDate); 
+0

您可能想确保首先有3个数字块,否则将其分配一个默认日期。例如,当用户输入'2/1999'时。 – inhan 2012-02-15 20:11:57