Javascript 使用dd/mm/yyyy-dons'格式计算两个日期之间的差异;好几年了

Javascript 使用dd/mm/yyyy-dons'格式计算两个日期之间的差异;好几年了,javascript,string,date,datetime,Javascript,String,Date,Datetime,我似乎无法使下面的代码正常工作。虽然它计算了日期上的差异,但它没有考虑年份,这使它偏离了方向。下面的代码只返回4天的差异,而忽略年份 如何解决这个问题 <!DOCTYPE html> <html> <head> <script type="text/javascript"> function test() { var today = "27/11/2013" today = new Date(to

我似乎无法使下面的代码正常工作。虽然它计算了日期上的差异,但它没有考虑年份,这使它偏离了方向。下面的代码只返回4天的差异,而忽略年份

如何解决这个问题

<!DOCTYPE html>

<html>

  <head>

    <script type="text/javascript">
    function test() {

      var today = "27/11/2013"
      today = new Date(today.split('/')[2],today.split('/')[1],today.split('/')[0]);

      var date2 = "23/02/2011"
      date2 = new Date(date2.split('/')[2],date2.split('/')[1],date2.split('/')[0]);

      var diff = today.getDate() - date2.getDate()
      alert(diff)
  }
  </script>

</head>

<body>
  <input type="button" value="test date" onclick="test()"/>
</body>

</html>

功能测试(){
var today=“27/11/2013”
today=新日期(today.split('/')[2],today.split('/')[1],today.split('/')[0]);
var date2=“23/02/2011”
date2=新日期(date2.split('/')[2],date2.split('/')[1],date2.split('/')[0]);
var diff=today.getDate()-date2.getDate()
警报(差异)
}
getDate()返回月份的日期(从1-31)

getDate()返回月份的日期(从1-31)

您使用的是
getDate()
,它返回一个月中的一天,这就是它忽略年份的原因。只需像这样比较日期:

var diff = today - date2;
然后,差异将包含以毫秒为单位的差异,您可以根据自己的意愿进行处理。

您使用的是
getDate()
,它返回一个月中的一天,这就是它忽略年份的原因。只需像这样比较日期:

var diff = today - date2;

然后,diff将包含以毫秒为单位的差值,您可以随意使用。

您使用的是
.getDate()
方法,该方法返回月份的日期,因此您只能将该特定月份的日期相互比较。使用
getTime()
方法返回可用于比较的日期的毫秒表示形式。还要记住,在使用JavaScript月份时,在创建日期时需要-1,因为0是一月,11是十二月。如果从日期对象手动构造日期字符串,则需要记住在月份中添加1

下面是一些代码,可以比较两个日期,并以天为单位返回差值

var today = "27/11/2013"
today = new Date(today.split('/')[2],today.split('/')[1]-1,today.split('/')[0]);
var date2 = "23/02/2011"
date2 = new Date(date2.split('/')[2],date2.split('/')[1]-1,date2.split('/')[0]);
var timeDiff = Math.abs(date2.getTime() - today.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
alert(diffDays)​; //1008
您可以创建两个日期对象,并使用
.getTime()
比较它们的毫秒表示形式,然后通过将其除以,将其转换回天数


这里有一个

方法,您使用的是
.getDate()
方法,该方法返回一个月的日期,因此您只需将该月的日期相互比较。使用
getTime()
方法返回可用于比较的日期的毫秒表示形式。还要记住,在使用JavaScript月份时,在创建日期时需要-1,因为0是一月,11是十二月。如果从日期对象手动构造日期字符串,则需要记住在月份中添加1

下面是一些代码,可以比较两个日期,并以天为单位返回差值

var today = "27/11/2013"
today = new Date(today.split('/')[2],today.split('/')[1]-1,today.split('/')[0]);
var date2 = "23/02/2011"
date2 = new Date(date2.split('/')[2],date2.split('/')[1]-1,date2.split('/')[0]);
var timeDiff = Math.abs(date2.getTime() - today.getTime());
var diffDays = Math.ceil(timeDiff / (1000 * 3600 * 24)); 
alert(diffDays)​; //1008
您可以创建两个日期对象,并使用
.getTime()
比较它们的毫秒表示形式,然后通过将其除以,将其转换回天数


下面是一个

您可能需要分别使用
getDate()
getMonth()
getFullYear()
。所以可能是这样的:

var day = today.getDate() - date2.getDate()
var month = today.getMonth() - date2.getMonth()
var year = today.getFullYear() - date2.getFullYear()

alert(month + "/" + day + "/" + year)

您可能需要分别使用
getDate()
getMonth()
getFullYear()
。所以可能是这样的:

var day = today.getDate() - date2.getDate()
var month = today.getMonth() - date2.getMonth()
var year = today.getFullYear() - date2.getFullYear()

alert(month + "/" + day + "/" + year)
和的可能副本和可能副本