我的页面上有一个申请表,在某个日期关闭。然而,它恰好在特定日期(即4月13日)的时间结束时关闭,但我希望它例如在4月13日14:00关闭。我在我的WordPress(add_time)中创建了一个下拉列表,输出字符串为14:00。如何将其添加到日期中,以便$ daysleft包括那些添加的小时数?
有点像?
$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';
}
?>
答案 0 :(得分: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');
现在,对于您的申请,我将以下列方式使用Carbon:
$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';
}
答案 1 :(得分:0)
对于具有日期和时间的操作,最好使用DateTime class
要在1小时内收到时间,您可以使用以下代码:
$time = new DateTime();
$time->modify("+1 hour");
echo $time->format("Y-m-d H:i:s");
通过该课程,您还可以与日期进行比较