Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
检查日期是否早于某个日期PHP laravel_Php_Laravel_Laravel 4 - Fatal编程技术网

检查日期是否早于某个日期PHP laravel

检查日期是否早于某个日期PHP laravel,php,laravel,laravel-4,Php,Laravel,Laravel 4,我试图检查某个日期是否早于某个日期。如果是,我希望输出有效,否则输出过期。这是我目前得到的代码,但是所有的条目都被输出为有效的,这是不应该发生的 首先,我计算出即将到来的周五的日期,在本例中是2014-10-03,但我希望它是午夜,所以2014-10-04 00:00:00 <?php $lastWed = date('Y-m-d', strtotime('last Wednesday', strtotime('tomorrow'))); $lastWed = date(

我试图检查某个日期是否早于某个日期。如果是,我希望输出有效,否则输出过期。这是我目前得到的代码,但是所有的条目都被输出为有效的,这是不应该发生的

首先,我计算出即将到来的周五的日期,在本例中是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
?>

我会这样做:

$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

@if(strotime($winner->created_at)没关系,伙计们,我做得完全不正确。我为像我这样犯愚蠢错误的人找到了答案。
if
总是正确的,因为所有的
$winner->都是在2014年10月3日星期五之前创建的

我在
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
并检查以确保日期小于或等于
$fri
且大于或等于
$lastWed
,问题已解决


我很想看看其他更有经验的程序员是如何做到这一点的。我相信有更好的方法。

$fri
设置为
strotime('+61小时),strotime($lastWed))
然后将其与
strotime($winner->created_at)
进行比较,你将比较整数而不是文本,而不是打印
日期('Y-m-dh:i:s',$fri)
我已经添加了我的答案。但是还有一件事。你不应该将PHP与刀片模板混合使用。你不应该使用
你应该设置这个变量来查看和使用
{$fri}
正如我在回答中所说的,那么你的意思是我应该在将变量传递到视图之前在控制器中设置变量,然后使用Blade进行输出吗?我只是Laravel的新手,所以我会尽可能多地学习
$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
$prevWed = date('Y-m-d H:i:s', strtotime('-1 days', strtotime($lastWed)));