2010-04-23 216 views

回答

4

首先,你要解析字符串取得日期对象,我通常使用的功能,如以下,提取日期部分,并使用Date构造:

function parseDate(input) { 
    var parts = input.match(/(\d+)/g); 
    // new Date(year, month [, date [, hours[, minutes[, seconds[, ms]]]]]) 
    return new Date(parts[0], parts[1]-1, parts[2], // months are 0-based 
        parts[3], parts[4]); 
} 

var diff = parseDate("2010-05-30 00:41") - parseDate("2010-04-23 15:03"); 
// 3145080000 milliseconds 
0

检查出CodePlex的JS日期时间库。它可以让你像.NET一样处理DateTimes(当然也有一些限制)。

4
var d1 = new Date(2010,3,23,15,3); 
var d2 = new Date(2010,4,30,0,41); 

var delta = Math.abs(d1 - d2); 

答案将以毫秒为单位。

+2

这应该是'新的日期( 2010,3,23,15,3)'。该月份需要为' - 1'(1月= 0,2月= 1等),除非使用八进制数字,否则应避免前导零。 Dito为第二个“日期”。 – RoToRa 2010-04-23 15:20:36

+0

@RoToRa:是的,谢谢。我只是将他的日期中的连字符,空格和冒号重新排序,而没有自己查看这些值。编辑来反映这一点。 – Robusto 2010-04-23 15:39:50

+1

不需要'valueOf'。 – 2010-04-23 15:56:18