Я получил форму заявки на своей странице, которая закрывается на определенную дату. Тем не менее, он закрывается точно, как только время достигнет этой определенной даты (т.е. 13 апреля), но я бы хотел, например, чтобы оно закрылось 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';
}
?>
Я в первую очередь рекомендую использовать углерод Но вы также можете использовать стандарт DateTime объект.
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';
}
Для операций с датой и временем лучше использовать Класс DateTime
Для получения времени за 1 час вы можете использовать следующий код:
$time = new DateTime();
$time->modify("+1 hour");
echo $time->format("Y-m-d H:i:s");
С этим классом вы также можете сравнить с датами