使用字符串月份的Javascript日期格式

时间:2012-05-29 15:15:16

标签: javascript

日期格式的所有其他主题都假设日期以整数形式输入。

我正在编写一个脚本(Linux),要求月份为字符串(Jan,Feb,Mar等)并需要验证日期。

我写了一个笨重的例程,提取月份,确定月份数,然后进行比较,但我希望可能有更整洁的东西来做这个?我以为我已经看到了一些关于使用'格式'方法的东西,但我现在找不到它......

我已经尝试过了,但它失败了:

var checkDate1 = document.getElementById('fromDate').value;
var checkDate2 = document.getElementById('toDate').value;

tmpDate1 = new Date(checkDate1);
tmpDate2 = new Date(checkDate2);

if (tmpDate1 < tmpDate2) {

例如,典型的字段条目为'12 -may-2012'。

注意:我无权向系统添加任何花哨的,奇怪的库,因此必须使用香草的东西。

1 个答案:

答案 0 :(得分:0)

在JavaScript中,要在构造函数中解析,字符串Date必须具有以下格式:D,d M Y H:i:s

现在它将是:星期二,2012年5月29日15:22:59

如果你想留在字符串中,你必须制作一个能够解析你的价值的花哨功能,并找出2012年5月29日的哪一天。

另一种方法(更简单)就是创建一个新的Date,解析你的值并使用其他构造函数的on

var today = '05-29-2012',
    aToday = today.split('-'),
    dToday = new Date(aToday[2], aToday[0], aToday[1], 0, 0, 0, 0),

    tomorrow = '05-30-2012',
    aTomorrow = tomorrow.split('-'),
    dTomorrow = new Date(aTomorrow[2], aTomorrow[0], aTomorrow[1], 0, 0, 0, 0);

if (dTomorrow.getTime() > dToday.getTime() ) {
    console.log('Tomorrow is tomorrow'); 
} else {
    console.log('Tomorrow is not tomorrow');
}
相关问题