可能重复:
How to calculate the date difference between 2 dates using php
您好,, 我使用dd-mm-yyyy格式作为日期; 你能告诉我如何找到两个日期之间的差异吗?
答案 0 :(得分:6)
如果您使用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)
如果您的日期在字符串中的格式为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;
你必须自己做的原因是,最近才有一个标准的字符串格式可以传递给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对象:
答案 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
小时以获得日期。