下面是用户输入日期的代码:(对于我来说,它必须是一个日期选择器,但表单必须以文本形式提交日期字段--不要问)
在提交时,我在javascript中调用验证逻辑。我附上了一个截图,显示当我尝试输入01/01/2001作为用户生日时的样子。看起来,当我将值字符串转换为Date对象时,它正在转换为错误的日期和时间。如果它能正确转换,我就可以调整月份、日期和年份,并构建一个字符串来发送我的第二个对象。
附加图片…
我尝试过UTC和时区,但都没有用。
我需要我的输出是一个文本字符串"01/01/2001“,我可以构建,只要我有正确的日期去in..but它似乎计算错误,无论我尝试。

发布于 2019-02-23 11:07:31
使用jquery datapicker库做到了这一点。
function initDatePickers() {
jQuery('.om-datepicker-trigger').click(function () {
var defaultDatePickerOptions = {
showOtherMonths: true,
changeMonth: true,
changeYear: true,
defaultDate: '-45y',
dateFormat: 'mm/dd/yy',
beforeShow: function (input, inst) {
var widget = jQuery(inst).datepicker('widget');
widget.css('margin-left', jQuery(input).outerWidth() + 3 -
widget.outerWidth());
},
//buttonImage: "/img/button_calendar.png",
//buttonImageOnly: true,
showOn: "both"
};
var $input = jQuery(this).parent().find('.om-input-date').first();
if ($input.hasClass('om-min-date-today')) {
var minDateTodayOptions = defaultDatePickerOptions;
minDateTodayOptions.defaultDate = 0;
minDateTodayOptions.minDate = 0;
$input.datepicker(minDateTodayOptions);
$input.datepicker('show');
} else {
$input.datepicker(defaultDatePickerOptions);
$input.datepicker('show');
}
});
jQuery('.om-input-date').click(function () {
jQuery(this).next('.om-datepicker-trigger').trigger('click');
});
// Datepicker
// --------------------------------------------------------
jQuery('.om-input-date').keyup(function () {
var inputDOBBox = jQuery(this);
var dateValue = inputDOBBox.attr('value');
if (dateValue.length == 3 || dateValue.length == 6) {
var first = dateValue.substring(0, dateValue.length - 1);
var last = dateValue.substring(dateValue.length - 1);
if (last != "/" && last != "-") {
inputDOBBox.attr('value', first + "/" + last);
}
}
});https://stackoverflow.com/questions/47823658
复制相似问题