悲观的日期解析

时间:2015-10-24 03:56:12

标签: javascript date parsing

javascript日期对象解析方法是"乐观",也就是说,它填写了尽早发布的信息。

e.g。

new Date('January 2016'); // = Jan 01 2016
new Date('2016');         // = Jan 01 2016

我想要一个悲观的解析,它会返回给定输入字符串的最新可能日期。

e.g。

new Date('January 2016'); // = Jan 31 2016
new Date('2016');         // = Dec 31 2016

我很可能会手动检查输入组件并填充最大值,但我想知道是否有一种简单的方法可以做到这一点。

谢谢!

2 个答案:

答案 0 :(得分:0)

var months = {
  "January":31,
  "February":28,
  "March":31,
  "April":30,
  "May":31,
  "June":30,
  "July":31,
  "August":31,
  "September":30,
  "October":31,
  "November":30,
  "December":31
}

var date = new Date(Object.keys(months)[0] + " " 
                   + months["January"] + " " 
                   +  "2016");

答案 1 :(得分:0)

这是我当场能想到的最好的。根据您的日期格式使用其中一个函数:这是一个JSFiddle:http://jsfiddle.net/7jzqh561/

function convertToPessimisticDate(date) {
    var getMonthPlus1 = parseInt(date.getMonth())+1;
    var getYear = date.getFullYear();
    return new Date(getYear, getMonthPlus1, 0);
}

function convertToPessimisticMonth(date) {
    return new Date(date.getFullYear(), 11, 31);
}