В настоящее время php получает текущее время / дату:
$now = date("Ymd H:m:s");
То, что нужно делать, это иметь новую переменную $new_time
равную $now
+ $hours
. $hours
– количество часов в диапазоне от 24-800.
Какие-либо предложения?
Вы можете использовать что-то вроде функции strtotime()
чтобы добавить что-то в текущую strtotime()
метку. $new_time = date("Ymd H:i:s", strtotime('+5 hours'))
.
Если вам нужны переменные в функции, вы должны использовать двойные кавычки, например strtotime("+{$hours} hours")
, однако лучше использовать strtotime(sprintf("+%d hours", $hours))
.
Другое решение (объектно-ориентированное) – использовать DateTime :: add
Пример:
$now = new DateTime(); //current date/time $now->add(new DateInterval("PT{$hours}H")); $new_time = $now->format('Ymd H:i:s');
Документация PHP .
Вы можете использовать strtotime () для достижения этой цели:
$new_time = date("Ymd H:i:s", strtotime('+3 hours', $now)); // $now + 3 hours
Верный
Вы можете использовать strtotime () для достижения этой цели:
$new_time = date("Ymd H:i:s", strtotime('+3 hours', strtotime($now))); // $now + 3 hours
Ум … ваши минуты должны быть исправлены … «Я» на несколько минут. Не месяцы. 🙂 (У меня была такая же проблема и для чего-то.
$now = date("Ymd H:i:s"); $new_time = date("Ymd H:i:s", strtotime('+3 hours', $now)); // $now + 3 hours
Вы также можете использовать время стиля unix для расчета:
$newtime = time() + ($hours * 60 * 60); // hours; 60 mins; 60secs echo 'Now: '. date('Ym-d') ."\n"; echo 'Next Week: '. date('Ym-d', $newtime) ."\n";
Вы можете попробовать lib Ouzo лакомства и сделать это бегло:
echo Clock::now()->plusHours($hours)->format("Ymd H:m:s");
API позволяет выполнять несколько операций.
Я использую следующую функцию, чтобы преобразовать нормальное значение даты в формат mysql datetime.
private function ampmtosql($ampmdate) { if($ampmdate == '') return ''; $ampm = substr(trim(($ampmdate)), -2); $datetimesql = substr(trim(($ampmdate)), 0, -3); if ($ampm == 'pm') { $hours = substr(trim($datetimesql), -5, 2); if($hours != '12') $datetimesql = date('Ymd H:i',strtotime('+12 hour',strtotime($datetimesql))); } elseif ($ampm == 'am') { $hours = substr(trim($datetimesql), -5, 2); if($hours == '12') $datetimesql = date('Ymd H:i',strtotime('-12 hour',strtotime($datetimesql))); } return $datetimesql; }
Он преобразует значения даты и времени, например,
2015-06-04 09:55 AM -> 2015-06-04 09:55 2015-06-04 03:55 PM -> 2015-06-04 15:55 2015-06-04 12:30 AM -> 2015-06-04 00:55
Надеюсь, это поможет кому-то.