JavaScript日期对象英国日期

Lin*_*nda 9 javascript date

我有以下代码

 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');
        }       
    })
Run Code Online (Sandbox Code Playgroud)

dateSet ="01/07/2010"dateMinimum ="23/7/2010"

两者都是英国格式.比较日期对象时,dateSetD应小于dateMinimumD但不是.我认为这与我使用英国日期dd/mm/yyyy的事实有关.我需要改变什么来使这个工作?

T.J*_*der 12

JavaScript Date构造函数不解析该形式的字符串(无论是英国格式还是美国格式).有关详细信息,请参阅规范,但您可以逐个部分构建日期:

new Date(year, month, day);
Run Code Online (Sandbox Code Playgroud)

MomentJS可能对于灵活处理日期很有用.(此答案以前与此lib相关联,但在很长一段时间内都没有得到维护.)


wog*_*les 12

这就是我最终做到的方式:

 var lastRunDateString ='05/04/2012'; \\5th april 2012
 var lastRunDate = new Date(lastRunDateString.split('/')[2], lastRunDateString.split('/')[1] - 1, lastRunDateString.split('/')[0]);
Run Code Online (Sandbox Code Playgroud)

请注意月份索引是从0到11.


JRT*_*JRT 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]);
Run Code Online (Sandbox Code Playgroud)


Sjo*_*erd 5

  • 使用将日期分为日,月,年份 dateSet.split('/')
  • 将这些部分按正确的顺序传递给Date构造函数.