2012-10-12 114 views
4

嘿,我想知道是否有任何脚本(PHP),可以检查是否在今天三天前的指定日期。如何检查日期是否在今天前三天

说..

$d1 = date("Y-m-d", filemtime($testfile)); 
$d2 = date("Y-m-d"); 

现在我想知道怎么这两个日期比较,以检查是否D1是ATLEAST3天前或D2 之前的任何帮助,将欣然赞赏。

+0

if(strtotime($ d1) - (60 * 60 * 24)<= time() - (60 * 60 * 24)|| strtotime($ d1) Sammaye

+0

我敢打赌,这已被问及已回答。请先使用搜索。 – hakre

回答

3

与时间戳只是检查:

if (time() - filemtime($testfile) >= 3 * 86400) { 
    // ... 
} 
4

假设你要测试的文件是否超过三天之前修改:

if (filemtime($testfile) < strtotime('-3 days')) { 
    // file modification time is more than three days ago 
} 
+0

我如何调整它来检查它不超过最后修改的三天。 – jcobhams

+0

@VyrenMedia我不确定我的理解......“不超过三天”翻译成“至少三天”......所以我的回答只有一秒钟的时间?如果你用'<='进行比较,你应该拥有你想要的东西。 –

0

使用时间戳,而不是日期,

$d1 = filemtime($testfile); 
$now = time(); 
if ($now - $d1 > 3600*24*3) { 
    .. 
} 
1

使用date("Y-m-d", strtotime("-3 day"));特定日期

你也可以使用

strtotime(date("Y-m-d", strtotime("-3 day"))); 

将其转换为整数比较日期字符串

6

为什么不使用DateTime对象之前。

$d1 = new DateTime(date('Y-m-d',filemtime($testfile)); 
$d2 = new DateTime(date('Y-m-d')); 
$interval = $d1->diff($d2); 
$diff = $interval->format('%a'); 
if($diff>3){ 
} 
else { 
} 
+0

谢谢...有点复杂的我..我会研究它tho .. – jcobhams

2

好了,看的目瞪口呆无人使用mktime()函数, 它使工作简单

例如您输入的日期是:2012年10月10日

mktime将其转换到UNIX时间戳

$check_date=mktime(0,0,0,10,**10+3**,2012); 

我们可以执行任何操作天气+, - ,*,/

+0

指这个链接http://www.w3schools.com/php/func_date_mktime.asp – Manoj

+0

我不明白这是如何试图解决我的问题..请解释你的代码,以及我如何解决我的问题 – jcobhams

+0

mktime()。函数将给定的时间转换为unix时间戳。在我的例子中,我将+ 3days添加到当前日子 – Manoj

相关问题