1

好的,我有以下问题。我想获取当前的日期时间,然后想检查我输入的日期是否大于当前的日期时间。我的 dateTime 格式应该是这样的。

03/11/2012 09:37 AM

这是我如何获取当前日期时间的函数。

function getCurrentDateTime()
{
    var currentTime = new Date()
    // Date
    var month = currentTime.getMonth() + 1;
    if (month < 10){
        month = "0" + month;
    }
    var day = currentTime.getDate();
    var year = currentTime.getFullYear();

    // Time
    var hours = currentTime.getHours();
    var minutes = currentTime.getMinutes();
    if (minutes < 10){
        minutes = "0" + minutes;
    }

    if(hours > 11){
        var dateString = month + "/" + day + "/" + year + " " + hours + ":" + minutes + " " + "PM";
        test = new Date(dateString);
        return dateString ;
    } else {
        var dateString = month + "/" + day + "/" + year + " " + hours + ":" + minutes + " " + "AM";

        return dateString;

    }
}

如您所见,它是如何返回字符串的。但是当我想用这个函数把它转换成一个日期时。我得到了这个格式 Fri May 11 2012 09:37:00 GMT+0200 (Romance Daylight Time)

date = new Date(dateString);

有了这个我无法计算。

谁能帮助我如何以这种格式获取当前日期以便进行检查?

亲切的问候。

4

2 回答 2

2

Javascript 提供了非常有限的功能来处理开箱即用的日期。使用像momentjs这样的外部库。

例如,您的功能将简化为

var stringDate = moment().format("DD/MM/YYYY HH:mm A");

您可以将其转换并与当前时间进行比较

var earlierDate = moment(stringDate, "DD/MM/YYYY HH:mm A");
if (earlierDate.valueOf() < moment().valueOf()) {
    // earlier indeed
}
于 2012-05-11T07:52:32.577 回答
0

datejs是另一个解决日期操作问题的库

于 2012-05-11T07:58:45.367 回答