php、javascript或jquery中两个日期之间的差异
可能重复:php、javascript或jquery中两个日期之间的差异,php,javascript,jquery,Php,Javascript,Jquery,可能重复: 嗨,, 我使用dd-mm-yyyy格式表示日期; 你能告诉我如何找出两个日期之间的差异吗?JavaScript // php echo strtotime($date1) - strtotime($date2); // echos the time difference between $date1 and $date2 in seconds 如果您使用DD-MM-YYYY格式的字符串作为日期值,您需要做两件事:1。将字符串转换为日期和2。获取日期之间的差异。我将按相反的顺序进行
嗨,, 我使用dd-mm-yyyy格式表示日期; 你能告诉我如何找出两个日期之间的差异吗?JavaScript
// php
echo strtotime($date1) - strtotime($date2); // echos the time difference between $date1 and $date2 in seconds
如果您使用DD-MM-YYYY格式的字符串作为日期值,您需要做两件事:1。将字符串转换为日期和2。获取日期之间的差异。我将按相反的顺序进行:
日期差
在JavaScript中,对Date
实例执行算术将使用它们的基本“时间”值(Date.getTime()
),这是自历元起的毫秒数(可以是负数)。因此,要获得差异,只需将一个日期与另一个日期相减:
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
将这些字符串转换为数字(我们指定小数的基数,在本例中为十进制指定10
,这样我们就不必担心parseInt
看到前导0
并假设为八进制):
您必须自己做这件事的原因是,直到最近才出现了一种标准字符串格式,您可以将其传递到new Date()
,以便将其解析为日期实例。在中引入了一种标准(的简化版本),但在野外还没有得到很好的支持。JavaScript
如果您使用DD-MM-YYYY格式的字符串作为日期值,您需要做两件事:1.将字符串转换为日期,2.获取日期之间的差值。我将按相反顺序取它们:
日期差
在JavaScript中,对Date
实例执行算术将使用它们的基本“时间”值(Date.getTime()
),这是自历元起的毫秒数(可以是负数)。因此,要获得差值,只需从一个日期减去另一个日期:
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的形式存在于字符串中,则必须将该字符串切分,以创建日期
实例。string#split
将使用您给它的分隔符拆分该字符串(-
)并创建一个字符串数组,然后parseInt
将这些字符串转换为数字(我们指定基数,在本例中,10
表示十进制,这样我们就不必担心parseInt
看到前导的0
并假设为八进制):
您必须自己做这件事的原因是,直到最近才有一种标准字符串格式,您可以将其传递到
new Date()
,让它将其解析为日期实例已在中引入,但尚未在野外得到很好的支持。如果使用php 5.3,则可以使用DateTime对象:
如果使用php 5.3,则可以使用DateTime对象:
在JavaScript中,请查看该库,它使在JavaScript中使用日期变得简单。您需要下载包含影响日期解析和呈现方式的全球化模块的。使用适当的CultureInfo文件:
Date.parse('11-12-2010') - Date.parse('25-12-2010');
此语句返回
-1209600000
ms;除以以获得其他单位–/1000/60/60/24=-14
天。(除以1000
ms、60
seconds、60
minutes、24
hours得到天。在JavaScript中,请查看该库,它使使用JavaScript处理日期变得简单。您需要下载该库,其中包含影响日期解析和呈现方式的全球化模块适当的文化信息文件:
Date.parse('11-12-2010') - Date.parse('25-12-2010');
此语句返回
-1209600000
ms;除以以获得其他单位–/1000/60/60/24=-14
天。(除以1000
ms,60
s,60
min,24
h,得到天数。message@Kiran当前位置您查看过这些实例了吗?它们正在运行。我重新查看了IE6、IE8、Firefox、Opera和Chrome(并不是说这些都是新的,我所知道的每一个JavaScript实现都支持上述所有内容)。对不起,先生,我刚刚除以100*60*60*24,它就可以工作;\@Kiran:如果你想在几天内得到结果,它应该是1000*60*60*24,而不是100*60*60*24。正如我在上面的回答中所说,结果以毫秒(千分之一秒)为单位@T.J.Crowder:非常感谢你,它在许多模块中对我都很有用。再次感谢你,它以NaN的身份给予我message@Kiran:你查看过这些实例了吗?它们很有效。我仔细检查了IE6、IE8、Firefox、Opera和Chrome(并不是说这些都是新的,我所知道的每个JavaScript实现都支持上述所有内容)对不起,先生,我除以100*60*60*24就行了。\@Kiran:如果你想在几天内得到结果,应该是1000*60*60*24,而不是100*60*60*24。正如我在上面的回答中所说,结果是以毫秒(千分之一秒)为单位的@T.J.Crowder:非常感谢,它在许多模块中对我都很有用。再次感谢JavaScript方面让这成为一个不同的问题,伙计们。JavaScript方面让这成为一个不同的问题,伙计们。