使用 Javascript 转换日期
Convert Date using Javascript
我有一个输入(日期选择器)
<input runat="server" id="txtdob" />
<asp:Button runat="server" ID="btnsubmit" Text="Submit" OnClick="btnsubmit_Click" ></asp:Button>
但是当我输入日期(不是来自日历)格式时 26-06-1993
我得到一个错误,因为月份和日期在点击提交按钮时被替换然后我使用 Javascript 函数来转换focusout
.
上的日期格式
Javascript
<script>
$(document).ready(function () {
$("#txtdob").focusout(function () {
debugger;
var input_date2 = document.getElementById("txtdob").value;
debugger;
var myDate = new Date(input_date2);
var prettyDate =
('0' + (myDate.getDate())).slice(-2) + '-' +
('0' + (myDate.getMonth() + 1)).slice(-2) + '-' +
myDate.getFullYear();
document.getElementById("txtdob").value = prettyDate;
document.write(prettyDate);
});
});
</script>
但在这里我遇到了同样的问题,就像我输入 DOB = 06-26-1993
时一切正常,日期也转换为 26-06-1993
格式但是
当我输入 DOB = 26-06-1993
我得到同样的错误。
如何解决?
我明白你的问题确保这会帮助你
<script>
var YourStringValue= function (date, format) {
debugger;
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
getPaddedComp = function (comp) {
return ((parseInt(comp) < 10) ? ('0' + comp) : comp)
},
formattedDate = format,
o = {
"y+": date.getFullYear(), // year
"M+": months[date.getMonth()], //month
"d+": getPaddedComp(date.getDate()), //day
"h+": getPaddedComp((date.getHours() > 12) ? date.getHours() % 12 : date.getHours()), //hour
"H+": getPaddedComp(date.getHours()), //hour
"m+": getPaddedComp(date.getMinutes()), //minute
"s+": getPaddedComp(date.getSeconds()), //second
"S+": getPaddedComp(date.getMilliseconds()), //millisecond,
"b+": (date.getHours() >= 12) ? 'PM' : 'AM'
};
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
formattedDate = formattedDate.replace(RegExp., o[k]);
}
} debugger;
return formattedDate;
};
$(function () {
debugger;
var tst = '26-06-1993';
var res = tst.split("-");
try {
var formattedDate = YourStringValue(new Date(res[1] + '-' + res[0]+'-' + res[2]), "d-M-y")
alert(formattedDate);
}
catch (err) {
alert('FormtString');
}
});
</script>
对于此类问题,有Date.js,可以自动转换值。
只需在该页面中签入示例即可,因此无需创建函数,只需添加到您的页面中并根据需要使用即可。
因此,如果您输入 20-08-2018
或 20/08/2018
,则显示 August 20, 2018
我有一个输入(日期选择器)
<input runat="server" id="txtdob" />
<asp:Button runat="server" ID="btnsubmit" Text="Submit" OnClick="btnsubmit_Click" ></asp:Button>
但是当我输入日期(不是来自日历)格式时 26-06-1993
我得到一个错误,因为月份和日期在点击提交按钮时被替换然后我使用 Javascript 函数来转换focusout
.
Javascript
<script>
$(document).ready(function () {
$("#txtdob").focusout(function () {
debugger;
var input_date2 = document.getElementById("txtdob").value;
debugger;
var myDate = new Date(input_date2);
var prettyDate =
('0' + (myDate.getDate())).slice(-2) + '-' +
('0' + (myDate.getMonth() + 1)).slice(-2) + '-' +
myDate.getFullYear();
document.getElementById("txtdob").value = prettyDate;
document.write(prettyDate);
});
});
</script>
但在这里我遇到了同样的问题,就像我输入 DOB = 06-26-1993
时一切正常,日期也转换为 26-06-1993
格式但是
当我输入 DOB = 26-06-1993
我得到同样的错误。
如何解决?
我明白你的问题确保这会帮助你
<script>
var YourStringValue= function (date, format) {
debugger;
var months = ['Jan', 'Feb', 'Mar', 'Apr', 'May', 'Jun', 'Jul', 'Aug', 'Sep', 'Oct', 'Nov', 'Dec'],
getPaddedComp = function (comp) {
return ((parseInt(comp) < 10) ? ('0' + comp) : comp)
},
formattedDate = format,
o = {
"y+": date.getFullYear(), // year
"M+": months[date.getMonth()], //month
"d+": getPaddedComp(date.getDate()), //day
"h+": getPaddedComp((date.getHours() > 12) ? date.getHours() % 12 : date.getHours()), //hour
"H+": getPaddedComp(date.getHours()), //hour
"m+": getPaddedComp(date.getMinutes()), //minute
"s+": getPaddedComp(date.getSeconds()), //second
"S+": getPaddedComp(date.getMilliseconds()), //millisecond,
"b+": (date.getHours() >= 12) ? 'PM' : 'AM'
};
for (var k in o) {
if (new RegExp("(" + k + ")").test(format)) {
formattedDate = formattedDate.replace(RegExp., o[k]);
}
} debugger;
return formattedDate;
};
$(function () {
debugger;
var tst = '26-06-1993';
var res = tst.split("-");
try {
var formattedDate = YourStringValue(new Date(res[1] + '-' + res[0]+'-' + res[2]), "d-M-y")
alert(formattedDate);
}
catch (err) {
alert('FormtString');
}
});
</script>
对于此类问题,有Date.js,可以自动转换值。
只需在该页面中签入示例即可,因此无需创建函数,只需添加到您的页面中并根据需要使用即可。
因此,如果您输入 20-08-2018
或 20/08/2018
,则显示 August 20, 2018