在英国格式的日期,使用jquery
进行日期比较是否有相对简单的方法?我正在尝试检查通过日期输入字段选择的天数是否大于或等于设定的数字。很遗憾,我无法更改日期格式,需要使用dd/mm/yy
。
更新:我使用的日期已经是英国格式dd/mm/yy
- 我正在尝试将其转换为可与之比较的格式当前日期,查找已过去的天数。
工作解决方案:
function checkDaysElapsed (input) {
var datePart = input.split("/");
year = datePart[2]; // get only two digits
month = datePart[1];
day = datePart[0];
var date1 = new Date(year,month-1,day);
var currentTime = new Date();
var month2 = currentTime.getMonth();
var day2 = currentTime.getDate();
var year2 = currentTime.getFullYear();
var date2 = new Date(year2,month2,day2);
console.log(year + '/' + month + '/' + day);
console.log(year2 + '/' + month2 + '/' + day2);
delta = date2 - date1;
// delta is the difference in milliseconds
delta_in_days = Math.round(delta / 1000 / 60 / 60/ 24);
return delta_in_days;
}
答案 0 :(得分:1)
以正确的格式输入日期后,您还需要将其与其他日期进行比较。为此,您可能希望将日期字符串强制转换为Date()
对象。
另请注意,只要您创建了Date
对象,实际格式就不再相关。
首先,您需要使用string.split('/')
将日期拆分为其组件var date1 = new Date(year,month-1,day),
var date2 = new Date(year2,month2-1,day2);
delta = date2 - date1;
// delta is the difference in milliseconds
delta_in_days = Math.round(delta / 1000 / 60 / 60/ 24);
答案 1 :(得分:0)
使用此插件格式化日期以通过ajax传递到服务器以进行准确的日期比较formatDate
并像这样打电话
var start = $.format.date($('#startDate').val(), "dd/MM/yyyy");
var finish= $.format.date($('#finish').val(), "dd/MM/yyyy");
$.ajax({
cache: true,
type: 'post',
async: false,
data: { start: start, finish: finish },
url: '/controller/CheckDates',
success: function (msg) {
//msg will be the days
}
});
我这样做是因为经验不准确,可能会有更有效的方式
答案 2 :(得分:-1)
这是您将日期格式设置为dd / mm / yy的方式:
$(function () {
$(".datepicker").datepicker({ dateFormat: 'dd/mm/yy' });
});