JavaScript日期对象英国日期

时间:2010-06-25 10:30:03

标签: 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');
        }       
    })

dateSet =“01/07/2010” dateMinimum =“23/7/2010”

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

6 个答案:

答案 0 :(得分:12)

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

new Date(year, month, day);

MomentJS可能有助于灵活处理日期。 (此答案以前与this lib相关联,但很长时间内没有得到维护。)

答案 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('/')
  • 将日期分为日,月,年部分
  • 按正确的顺序将这些部分传递给Date constructor.

答案 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开头,因此您需要相应地调整日期集。