我的HTML
<input type="datetime-local" onblur="formatDate(this.value)" />
我的功能
function formatDate(date) {
..
..
}
答案 0 :(得分:1)
我仍然支持我在你的问题下面提出的评论,但是,我相信这是你正在寻找的......
代码考虑了浏览器对datetime-local
输入类型的支持,并相应地设置输出。
输出将是您在此链接的其他帖子中所述的输出:Formatting date value in javascript格式为:&#34; 03/02/1991 12:01 AM&#34;如果浏览器支持datetime-local
输入类型,它将相应地设置日期和时间。据我所知,您无法将datetime-local
的格式更改为上面指定的格式。如果你想获得上面指定的格式,在支持这种输入类型的浏览器上,你总是可以创建一个隐藏的输入元素并将其值设置为所需的输出以进行处理(因为我认为这是意图)。
var support = false;
var input = document.createElement('input');
input.setAttribute('type', "datetime-local");
if (input.type !== 'text') {
support = true;
}
$("#datetime").onblur = setDateTime();
function setDateTime() {
var nDate = new Date();
var string;
var date = nDate.getDate();
var month = nDate.getMonth() + 1;
var year = nDate.getFullYear();
var hour = nDate.getHours();
var minute = nDate.getMinutes();
var second = nDate.getSeconds();
var millisecond = nDate.getMilliseconds();
var ampm = "AM";
if (date < 10) {
date = "0" + date.toString();
}
if (month < 10) {
month = "0" + month.toString();
}
if (support === false) {
if (hour === 0) {
hour = 12;
}
if (hour > 12) {
hour -= 12;
ampm = "PM";
}
}
if (hour < 10) {
hour = "0" + hour.toString();
}
if (minute < 10) {
minute = "0" + minute.toString();
}
if (support === true) {
string = year + "-" + month + "-" + date + "T" + hour + ":" + minute + ":" + second;
} else {
string = date + "/" + month + "/" + year + " " + hour + ":" + minute + " " + ampm;
}
$("#datetime").val(string);
}
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<input type="datetime-local" id="datetime" />
&#13;