function date()
{
var myDate=new Date(document.getElementById('date').value); //get the date from a textfield
var day=myDate.getDate();
var month=myDate.getMonth()+1;
var yr=myDate.getFullYear();
if(dateformat=="dd/mm/yyyy") //checking the date format //
{
document.getElementById('date').value=day + "/" + month + "/" + yr;
}
else
{
document.getElementById('date').value=month+"/"+day + "/" +yr;
}
}
这个onchange函数写在文本框日期的onchange方法中,在改变文本框时它应该改变默认设置的日期格式。
如果 dd/mm/yyy
是格式,则将其更改为该格式,如果是 mm/dd/yyy
,则将其更改为该格式。我的代码进行更改, 但它无法识别哪个月份!
例如.. 如果日期格式为 mm/dd/yyy
并且我将日期键入为 11/01/2001' (NOV -1 2001) 它更改为
01/11/2011`,这是不应该做的。
但是如果我输入 01-11-2001(2001 年 1 月 1 日),输入是正确的,但它会变为 11/01/2001
我怎样才能更改代码来纠正这个问题???请帮忙!!!
最佳答案
Demo Fiddle
Javascript 代码
function dateChange() {
var e = document.getElementById("dateformat");
var dateformat = e.options[e.selectedIndex].text;
var myDate;
if (dateformat == "dd/mm/yyyy") //checking the date format //
{
var value = document.getElementById('date').value;
var format = value.split("/");
myDate = new Date(format[2], format[1] - 1, format[0]);
var day = myDate.getDate();
var month = myDate.getMonth() + 1;
var yr = myDate.getFullYear();
document.getElementById('date').value = day + "/" + month + "/" + yr;
} else {
myDate = new Date(document.getElementById('date').value);
var day = myDate.getDate();
var month = myDate.getMonth() + 1;
var yr = myDate.getFullYear();
document.getElementById('date').value = month + "/" + day + "/" + yr;
}
document.getElementById('dateStr').innerHTML = myDate.toDateString();
}
在下拉列表中输入日期 01/02/2014
和 mm/dd/yyyy
日期将是 Thu Jan 02 2014
,现在只需将下拉列表更改为 dd/mm/yyyy
日期将是 Sat Feb 01 2014
实例化 Javascript 的 Date 对象需要这种格式 new Date(yyyy,mm,dd)
,所以当你使用 dd/mm/yyyy
时你需要手动转换dd & mm
值...
Reference
关于javascript - 更改日期格式以识别日期和月份?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24033897/