我有以下代码
datePicker.change(function(){
dateSet = datePicker.val();
dateMinimum = dateChange();
dateSetD = new Date(dateSet);
dateMinimumD = new Date(dateMinimum);
if(dateSetD<dateMinimumD){
datePicker.val(dateMinimum);
alert('You can not amend down due dates');
}
})
dateSet =“01/07/2010” dateMinimum =“23/7/2010”
两者都是英国格式。比较日期对象时,dateSetD应小于dateMinimumD但不是。我认为这与我使用英国日期dd / mm / yyyy的事实有关。我需要改变什么才能使其正常工作?
答案 0 :(得分:12)
JavaScript Date
构造函数不解析该格式的字符串(无论是英国格式还是美国格式)。有关详细信息,请参阅the spec,但您可以按部分构建日期:
new Date(year, month, day);
答案 1 :(得分:12)
这就是我最终做到的方式:
var lastRunDateString ='05/04/2012'; \\5th april 2012
var lastRunDate = new Date(lastRunDateString.split('/')[2], lastRunDateString.split('/')[1] - 1, lastRunDateString.split('/')[0]);
请注意月份索引是0-11。
答案 2 :(得分:9)
var dateString ='23/06/2015';
var splitDate = dateString.split('/');
var month = splitDate[1] - 1; //Javascript months are 0-11
var date = new Date(splitDate[2], month, splitDate[0]);
答案 3 :(得分:5)
dateSet.split('/')
答案 4 :(得分:0)
是的,您使用的日期格式存在问题。如果您未设置日期格式,则使用的默认日期为'mm/dd/yy
。因此,在创建日期选择器时,应按照以下步骤设置首选日期格式:
$(".selector" ).datepicker({ dateFormat: 'dd/mm/yyyy' });
或者您可以稍后将其设置为:
$.datepicker.formatDate('dd/mm/yyyy');
答案 5 :(得分:0)
当您尝试创建日期对象时:
new Date(year, month, day, hours, minutes, seconds, milliseconds)
示例:
dateSetD = new Date(dateSet.year, dateSet.month, dateSet.day);
注意:JavaScript Date对象的月份以00开头,因此您需要相应地调整日期集。