有没有更好的方法来格式化用户推算的日期。我有一个输入字段,单击日历时会弹出一个输入字段,您可以选择一个日期,但用户也可以选择输入日期。我希望用户能够输入 1/12 和我的 javascript 以将其格式化为 2012 年 1 月 12 日。有没有一种简单的方法来解决这个问题而不必进行所有类型的检查?如果不是,最好的方法是什么?
问问题
2479 次
3 回答
3
这个库可以帮助你:http ://www.datejs.com/
dd/mm/yyyy 是一种有效的格式,例如在西班牙、英国、...
于 2012-06-21T17:26:56.773 回答
3
我刚刚试了一下,但不确定它是否正确,但我认为它正在工作(月/日/年)。
$('input[name="txt_date"]').on('blur', function(e){
var dt=$(this).val();
if(dt!='')
{
if(dt.indexOf('/'))
{
var da=dt.split('/');
var l=da.length;
if(l <= 3)
{
var date='';
for(i=0;i<l;i++)
{
if(i==0)
{
if(da[i].match(/^\d{1}|d{2}$/) && da[i]>0 && da[i]<=12)
{
var m=da[i].length==1 ? '0'+da[i] : da[i];
date=m;
}
}
if(i==1)
{
if(da[i].match(/^\d{1}|d{2}$/) && da[i]>0 && da[i]<=31)
{
var d=da[i].length==1 ? '0'+da[i] : da[i];
date+='/'+d;
}
}
if(i==2)
{
if(da[i].match(/^\d{4}$/))
{
date+='/'+da[i];
}
else date+='/'+new Date().getFullYear();
}
}
if(l<3)
{
date+='/'+new Date().getFullYear();
}
if(date.match(/^\d{2}\/\d{2}\/\d{4}$/))
{
$(this).val(date);
}
else alert('invalid date!');
}
}
}
});
于 2012-06-21T18:46:04.727 回答
1
这就是我想出的。
var checkDate = function(dateVal, input){
if(dateVal.length == 10){
return;
}
var d = new Date();
var currentMonth = d.getMonth();
var year = d.getFullYear();
var firstIndex = dateVal.indexOf('/');
var month = parseInt(dateVal.substr(0, firstIndex));
var day = parseInt(dateVal.substr(firstIndex + 1, 2));
if(month < 10){
month = '0' + month;
}
if(day < 10){
day = '0' + day;
}
if(month > currentMonth){
year = year - 1;
}
dateVal = month + '/' + day + '/' + year;
if(isNaN(month)){
input.val('');
return;
}
input.val(dateVal);
};
于 2012-06-21T19:59:01.857 回答