我有两个欧洲日期格式的日期选择器:
function SetDatePicker() {
$("#cphBody_txtDateFrom").attr('readonly', 'readonly');
$("#cphBody_txtDateTo").attr('readonly', 'readonly');
$("#cphBody_txtDateFrom, #cphBody_txtDateTo").datepicker({
dateFormat: "dd/mm/yy",
defaultDate: "+1w",
changeMonth: true,
numberOfMonth: 1
});
}
我有一个JavaScript逻辑可以验证2个美国日期之间的日期差异,如果超过30个则会失败:
function ValidateDateDiff(sender, args) {
var dateFrom = $('#cphBody_txtDateFrom').val();
var dateTo = $('#cphBody_txtDateTo').val();
var dayDiff = DaysBetween(dateFrom, dateTo);
if (dayDiff > 30) {
args.IsValid = false;
}
}
function DaysBetween(from, to) {
var millisecondsPerDay = 24 * 60 * 60 * 1000;
return (treatAsUTC(to) - treatAsUTC(from)) / millisecondsPerDay;
}
//accounting for changes to the UTC offset when Daylight Saving Time begins or ends
function treatAsUTC(date) {
var result = new Date(date);
result.setMinutes(result.getMinutes() - result.getTimezoneOffset());
return result;
}
现在,我需要更改逻辑以验证欧洲时间标准的日差。
我必须改变我的逻辑才能做到这一点?
答案 0 :(得分:0)
我通过创建新功能来解决问题:
function parseDate(str) {
var mdy = str.split('/');
return new Date(mdy[2], mdy[1]-1, mdy[0])
}
并更改了一个逻辑,以便在dayDiff
函数中获取ValidateDateDiff
值:
var dayDiff = DaysBetween(parseDate(dateFrom), parseDate(dateTo));