Ответ 1
if (date('H') < 14) {
$pre2pm = true;
}
Для получения дополнительной информации о функции даты, пожалуйста, см. руководство по PHP. Я использовал следующий формат времени:
H = 24-часовой формат часа (от 00 до 23)
Мне нужно проверить PHP, если текущее время до 2 вечера в этот день.
Я делал это с strtotime
по датам раньше, но на этот раз это только с временем, поэтому, очевидно, в 0.00 каждый день время будет reset, а логическое значение будет reset от false
до true
.
if (current_time < 2pm) {
// do this
}
if (date('H') < 14) {
$pre2pm = true;
}
Для получения дополнительной информации о функции даты, пожалуйста, см. руководство по PHP. Я использовал следующий формат времени:
H = 24-часовой формат часа (от 00 до 23)
Try:
if(date("Hi") < "1400") {
}
Смотрите: http://php.net/manual/en/function.date.php
H 24-hour format of an hour with leading zeros 00 through 23
i Minutes with leading zeros 00 to 59
Вы могли бы просто пройти время
if (time() < strtotime('2 pm')) {
//not yet 2 pm
}
Или также явно указать дату
if (time() < strtotime('2 pm ' . date('d-m-Y'))) {
//not yet 2 pm
}
Используйте 24-часовое время, чтобы обойти проблему следующим образом:
$time = 1400;
$current_time = (int) date('Hi');
if($current_time < $time) {
// do stuff
}
Таким образом, 2PM приравнивается к 14:00 в течение 24 часов. Если мы удалим двоеточие с момента времени, тогда мы можем оценить его как целое в нашем сравнении.
Для получения дополнительной информации о функции даты, пожалуйста, см. руководство по PHP. Я использовал следующие форматы времени:
H = 24-часовой формат часа (от 00 до 23)
i = Минуты с ведущими нулями (от 00 до 59)
Вы не сказали нам, какая версия PHP вы используете, хотя, предполагая, что это PHP 5.2.2+, чем вы должны это сделать:
$now = new DateTime();
$twoPm = new DateTime();
$twoPm->setTime(14,0); // 2:00 PM
то просто спросите:
if ( $now < $twoPm ){ // such comparison exists in PHP >= 5.2.2
// do this
}
в противном случае, если вы используете одну из более старых версий (скажем, 5.0), это должно сделать трюк (и намного проще):
$now = time();
$twoPm = mktime(14); // first argument is HOUR
if ( $now < $twoPm ){
// do this
}
Попробуйте
if( time() < mktime(14, 0, 0, date("n"), date("j"), date("Y")) ) {
// do this
}
Эта функция проверяет, работает ли она между часами в EST, принимая 2 параметра, массивы с часами и am/pm...
/**
* Check if between hours array(12,'pm'), array(2,'pm')
*/
function is_between_hours($h1 = array(), $h2 = array())
{
date_default_timezone_set('US/Eastern');
$est_hour = date('H');
$h1 = ($h1[1] == 'am') ? $h1[0] : $h1[0]+12;
$h1 = ($h1 === 24) ? 12 : $h1;
$h2 = ($h2[1] == 'am') ? $h2[0] : $h2[0]+12;
$h2 = ($h2 === 24) ? 12 : $h2;
if ( $est_hour >= $h1 && $est_hour <= ($h2-1) )
return true;
return false;
}
Используйте функции time()
, date()
и strtotime()
:
if(time() > strtotime(date('Y-m-d').' 14:00') {
//...
}
Если вы хотите проверить, будет ли время до 14:30, вы можете попробовать следующий сегмент кода.
if (date('H') < 14.30) {
$pre2pm = true;
}else{
$pre2pm = false;
}