2014-10-02 181 views
0

我想检查日期是否在某个日期之前。如果是我想输出有效的else输出Expired。这是我目前得到的代码,但所有条目都被输出为有效,这不应该发生。检查日期是否在某个日期之前PHP laravel

首先我计算出这个星期五的日期,在这种情况下是2014-10-03,但我希望它是午夜,因此2014-10-04 00:00:00。

<?php 
    $lastWed = date('Y-m-d', strtotime('last Wednesday', strtotime('tomorrow'))); 
    $lastWed = date('Y-m-d H:i:s', strtotime($lastWed.' 11:00:00')); //2014-10-01 11:00:00 
    $fri = date('Y-m-d H:i:s', strtotime('+61 hours', strtotime($lastWed))); //2014-10-04 00:00:00 
    //Valid 2014-10-01 //Expired 2014-09-25 
?> 

然后我用$fri变量,看看是否条目是有效还是无效。但它不起作用。有什么想法吗?

@if(date('Y-m-d H:i:s', strtotime($winner->created_at)) <= $fri) 
    Valid until <?= $fri ?> 
@else 
    Expired 
@endif 
+0

设置'$ fri'为'strtotime('+ 61 hours',strtotime($ lastWed))',然后将其与'strtotime($ winner-> created_at)'进行比较,您将比较整数而不是文本可以打印日期('YMD H:我:S',$ Fri)' – 2014-10-02 11:48:48

回答

1

我会做这种方式:

$lastWed = date('Y-m-d', strtotime('last Wednesday', strtotime('tomorrow'))); 
$lastWed = date('Y-m-d H:i:s', strtotime($lastWed.' 11:00:00')); //2014-10-01 11:00:00 
$fri = strtotime('+61 hours', strtotime($lastWed)); 

在刀片:

@if(strtotime($winner->created_at) <= $fri) 
    Valid until {{ $fri }} 
@else 
    Expired 
@endif 
0

别介意家伙,我是这样做完全正确。我想出了那些像我这样犯下愚蠢错误的人。该If总是正确的,因为所有的$winner->created_at的地方其实本周五03rd之前,2014年10月

我增加了一个附加条件的If,以确保他们的日期特定的范围内所处的位置。

$lastWed = date('Y-m-d', strtotime('last Wednesday', strtotime('tomorrow'))); 
$lastWed = date('Y-m-d H:i:s', strtotime($lastWed.' 11:00:00')); //2014-10-01 11:00:00 
$fri = date('Y-m-d H:i:s', strtotime('+61 hours', strtotime($lastWed))); //2014-10-04 00:00:00 
$prevWed = date('Y-m-d H:i:s', strtotime('-1 days', strtotime($lastWed))); 
           ?> 
@if($winner->created_at <= $fri && $winner->created_at >= $prevWed) 
    Valid until <?= $fri ?> 
@else 
    Expired 
@endif 

我制定了以前Wendsday这一行:

$prevWed = date('Y-m-d H:i:s', strtotime('-1 days', strtotime($lastWed))); 

,检查以确保日期是小于或等于$fri和大于或等于$lastWed和问题得到解决。

我很想看看其他更有经验的程序员可能如何接近这一点。我相信有更好的方法。

+0

我已经添加了我的答案。但还有一件事。您不应该将PHP与Blade模板混合使用。你不应该使用''你应该设置这个变量来查看并使用'{{$ fri}}',如我在回答中所示 – 2014-10-02 11:58:28

+0

所以你的意思是我应该在控制器内设置变量,然后将它传递给查看然后用刀片输出?我只是Laravel的新手,所以尽量多学习 – Javacadabra 2014-10-02 13:28:12

+1

你应该看看http://laravel.com/docs/4.2/responses#views – 2014-10-02 13:55:14

相关问题