2016-12-04 3 views
-3

У меня есть две даты, которые я хочу сравнить между двумя из них, они в одно и то же время (год/месяц/день/час) Я получаю время из базы данных, а в другое время с пользовательского ввода i использовалиСравнение между двумя датами в php

$checkdate = strtotime($meetingDate); 
$dateconflicts = strtotime($_SESSION['date']); 

if ($checkdate == $dateconflicts) { 
    $msg = "<div class='alert alert-danger'>there's conflicts !</div>";     
} 

вещь не работает, как это, я не знаю почему.

+0

'strtotime()' возвращает метку времени, что означает, что вы сравниваете две метки времени. Поэтому, если вы не дали время, которое вы дали, это точно такая же секунда, он потерпит неудачу. Вероятно, вы хотите отформатировать его с датами, я рекомендую класс [DateTime] (http://php.net/manual/en/datetime.construct.php). – Qirel

+0

ответ на этот вопрос: http://stackoverflow.com/questions/8722806/how-to-compare-two-dates-in-php –

+0

Значение '$ _SESSION ['date']' это что? и началась ли сессия? Изменить: значение '$ meetingDate' - это тоже? –

ответ

0

Чтобы игнорировать секунды, создать строку из целого времени, только включает в себя год, месяц, дата, и Час:

$checkdate = date('Y-m-d H', strtotime($meetingDate)); 
$dateconflicts = date('Y-m-d H', strtotime($_SESSION['date'])); 

if ($checkdate == $dateconflicts) { 
    $msg = "<div class='alert alert-danger'>The dates $checkdate and $dateconflicts conflict !</div>"; 
} 
+0

Я сделал свое решение, и теперь условие всегда истинно, несмотря ни на что. – ziyad

+0

укажите данные примера. – WEBjuju

+0

@ziyad i обновил '$ msg', чтобы вы могли следить за тем, что вы получаете из своих дат. если вы получаете что-то неожиданное, проблема может быть в датах задолго до запуска этого кода. – WEBjuju

0

Если вы ищете, как проверить, если 2 даты имеют один и тот же час:

$date1 = '2016-12-04 20:21:10'; 
$date2 = '2016-12-04 21:50:00'; 

if (date('Y-m-d H', strtotime($date1)) == date('Y-m-d H', strtotime($date2))) { 
    echo 'Same hour'; 
} 
+1

Я думаю, что OP хочет в тот же день, год, месяц. 'они в то же время (год/месяц/день/час)' – chris85

+0

Вы правы @ chris85, я обновил свой ответ :) – Max

+1

OP использует сеансы здесь '$ _SESSION ['date']', поэтому мы не знаем если этот массив содержит значение или нет, и что это такое, все догадываются. –

Смежные вопросы