2013-04-23 27 views
0

这里是我的确切代码:PHP日起不少于日期(“L,F J”)形式

$date = date('l, F j'); 
$start = $row['date']; // equal to Monday, April 15 
$interval = $row['interval']; // this is equal to 7 
$end = date('l, F j', strtotime($start ."+$interval days")); 

if ($end < $date) { 
    // do this 
} else { 
    //yada yada yada 
} 

我不如果即时通讯使用的变量$interval错误或日期的strtotime7天可以知道不能用于这种日期格式。 我想保留在这个日期格式,但如果我必须改变,那么我想我必须。 问题是我可以使用这种日期格式并且仍然添加$interval天数? 当$end日期小于$日期时,它应该执行代码的一部分,并且不执行该部分。

任何帮助将是伟大的。谢谢。

+0

如果这是你应该已经在1号线得到一个编译器错误你确切的代码,所以我不打算试图修复这些代码。给我们一些基本上有用的东西,我会去的。你应该在这里阅读我的答案:http://stackoverflow.com/questions/16035604/convert-int-60-to-a-time-value-of-60-minutes/16035652#16035652 – 2013-04-23 21:50:21

+0

你有没有考虑过创建' DateTime'对象与'createFromFormat()'&使用' - > add(DateInterval)'? – Wrikken 2013-04-23 21:51:09

+0

圣语法错误... – SeanWM 2013-04-23 21:51:53

回答

3

如果这是您的确切代码,那么第一行的date(l, F j)是语法错误,并且此代码永远不会运行。

您的问题是您将时间值转换为STRINGS,然后进行字符串比较。

例如

('December 1' < 'February 15') 

将是TRUE,因为DF之前。你需要来比较的strtotime)的原始时间戳(生产,这是一个简单的整数:

if (strtotime($start) < strtotime($end)) { 
    start is less than end 
} 
+0

谢谢@marc。 – Ricky 2013-04-23 21:53:28