2012-05-11 113 views
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; 

    } 
} 

正如你可以看到它是如何返回一个字符串。但是当我想用这个函数将它转换成日期。我得到这种格式周五2012年5月11日09:37:00 GMT + 0200(浪漫夏令时间)

date = new Date(dateString); 

而与此我无法计算。

有没有人可以帮助我如何以这种格式获取当前日期,以便我可以进行检查?

亲切的问候。

+0

date.js库真的很酷。尝试一下。 –

回答

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 
} 
+0

当我这样做时,我得到的毫秒数 var dateString = month +“/”+ day +“/”+ year +“”+ hours +“:”+ minutes +“”+“AM”; var test = moment(dateString,“DD/MM/YYYY HH:mm A”); \t \t \t return test – Steaphann

+0

@StefGeelen:我不知道你在说什么...... – Jon

+0

我唯一想做的就是获取当前的DateTime。把它放在一个类型为Date的var中,格式如下03/11/2012 09:37 AM – Steaphann