2017-04-13 63 views
1

我在我的页面上获得了一个在特定日期关闭的申请表单。然而,它会在特定的日期(即4月13日)刚刚结束,但我希望它在4月13日的14:00结束。我在WordPress中创建了一个下拉菜单(add_time),输出字符串为14:00。我怎样才能在日期中添加这个数据,以便$ daysleft也包括那些增加的小时数?如何获取日期并在其中添加'x'小时

有点像?

$addedTime = get_field('add_time'); 
$addedTime = strtotime ($addedTime); 
$daysleft = floor($datediff/(60*60*24)+$addedtime)) +1 <--- (not sure where to one is for) 

下面,如果完整的代码,因为它是目前

<?php 
    $now = time(); 
    $dueDate = get_field('due_date'); 
    $addedTime = get_field('add_time'); 
    $dueDate = strtotime($dueDate); 
    $datediff = $dueDate - $now; 
    $daysLeft = floor($datediff/(60*60*24))+1; 
    $daysLeft = intval($daysLeft); 
?> 
<?php 
    if($daysLeft == 0) { 
     echo 'Last day'; 
    } elseif($daysLeft < 0) { 
     echo 'Deadline passed'; 
    } elseif($daysLeft == 1) { 
     echo $daysLeft.' days left'; 
    } else { 
     echo $daysLeft.' days left'; 
    } 
?> 

回答

1

我首先的建议使用Carbon但你也可以使用标准的DateTime对象。

日期时间

$date = new DateTime('20-04-2017'); 
$date->add(new DateInterval('P1D')); 
echo $date->format('d-m-Y'); 

use Carbon\Carbon; 

$date = new Carbon::createFromFormat('d-m-Y','20-04-2017'); 
$nextDay = $date->addDay(); 
echo $nextDay->format('d-M-Y'); 

现在为你的应用我会以下列方式使用碳:

$enddate = Carbon::createFromFormat('d-m-Y H:i:s','14-04-2017 14:00:00'); 
if(Carbon::now()->gte($enddate)) { 
    //Application ended code 
} 
else { 
    // application active code 
} 

如果您希望使用DateTime你可以做这样的:

$enddate = new DateTime('2017-04-13 13:00:00'); 
$now = new DateTime('now'); 

$diff = $enddate->getTimestamp() - $now->getTimestamp(); 

if($diff >= 0) { 
    echo 'active'; 
} 
else { 
    echo 'inactive'; 
} 
0

对于日期和时间,更好的操作使用DateTime class

要在1小时内收到的时间,你可以使用下面的代码:

$time = new DateTime(); 
$time->modify("+1 hour"); 
echo $time->format("Y-m-d H:i:s"); 

与该类您也可以比较日期

相关问题