php或javascript或jquery中两个日期之间的差异

时间:2010-12-11 09:45:34

标签: php javascript jquery

  

可能重复:
  How to calculate the date difference between 2 dates using php

您好,, 我使用dd-mm-yyyy格式作为日期; 你能告诉我如何找到两个日期之间的差异吗?

4 个答案:

答案 0 :(得分:6)

的JavaScript

如果您使用DD-MM-YYYY格式的字符串作为日期值,则需要做两件事:1。将字符串转换为日期,然后2.获取日期之间的差异。我会以相反的顺序采取这些:

日期差异

在JavaScript中,对Date实例执行算术将使用其基础“时间”值(date.getTime()),这是自The Epoch以来的毫秒数(可以是负数)。所以为了得到差异,只需从另一个日期中减去一个日期:

var d1 = new Date(2010, 0, 1); // January 1st 2010
var d2 = new Date(2010, 1, 1); // February 1st 2010
var diff = d2 - d1;            // Milliseconds between the dates (in this case, 2678400000)

Live example

String to Date

如果您的日期在字符串中的格式为DD-MM-YYYY,则必须对该字符串进行切分以创建Date个实例。 String#split将使用您提供的分隔符(在本例中为-)拆分字符串并创建字符串数组,然后parseInt将这些字符串转换为数字(我们指定radix,在这种情况下10表示小数,因此我们不必担心parseInt看到前导0并假设八进制):

function ddmmyyyyToDate(str) {
    var parts = str.split("-");                  // Gives us ["dd", "mm", "yyyy"]
    return new Date(parseInt(parts[2], 10),      // Year
                    parseInt(parts[1], 10) - 1,  // Month (starts with 0)
                    parseInt(parts[0], 10));     // Day of month
}

var s1 = "01-01-2010";          // January 1st 2010
var d1 = ddmmyyyyToDate(s1);
var s2 = "01-02-2010";          // February 1st 2010
var d2 = ddmmyyyyToDate(s2);
var diff = d2 - d1;

Live example

你必须自己做的原因是,最近才有一个标准的字符串格式可以传递给new Date(),让它将其解析为日期实例。 ISO8601中引入了一个标准(5th edition spec的简化版本),但在野外尚未得到很好的支持。

答案 1 :(得分:0)

// php
echo strtotime($date1) - strtotime($date2); // echos the time difference between $date1 and $date2 in seconds

答案 2 :(得分:0)

如果使用php 5.3,则可以使用DateTime对象:

http://www.php.net/manual/en/datetime.diff.php

答案 3 :(得分:0)

在JavaScript中,查看Datejs库,这样可以轻松地使用JavaScript中的日期。您需要下载包含全球化模块的full package,这些模块会影响日期的解析和呈现方式。使用适当的CultureInfo文件:

Date.parse('11-12-2010') - Date.parse('25-12-2010');

此语句返回-1209600000 ms;划分以获得其他单位 - /1000/60/60/24 = -14天。 (除以1000毫秒,60秒,60分钟,24小时以获得日期。