我有一个输入(日期选择器)
<input runat="server" id="txtdob" />
<asp:Button runat="server" ID="btnsubmit" Text="Submit" OnClick="btnsubmit_Click" ></asp:Button>
但是当我输入日期格式(不是日历格式)26-06-1993
时,由于单击提交按钮上的月份和日期已被替换,我得到一个错误,那么我正在使用Javascript函数将{{1 }}。
JavaScript
focusout
但是在这里我遇到了同样的问题,例如当我输入DOB = <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>
时,一切都正常工作,并且日期也转换为06-26-1993
格式,但是
当我输入DOB = 26-06-1993
时,我得到相同的错误。
如何解决?
答案 0 :(得分:0)
我了解您的问题可以确保对您有帮助
<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.$1, 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>
答案 1 :(得分:0)
对于这种类型的问题,有Date.js,它会自动转换值。
只需使用示例检查该页面,因此无需创建功能,只需添加页面并根据需要使用它即可。
因此,如果您输入的是20-08-2018
或20/08/2018
,并且显示August 20, 2018