За последние 24 часа нас посетили 17398 программистов и 1723 робота. Сейчас ищут 1549 программистов ...

strtotime() и date() странно преобразуют даты

Тема в разделе "PHP для новичков", создана пользователем rc_2013, 31 окт 2013.

  1. rc_2013

    rc_2013 Активный пользователь

    С нами с:
    30 янв 2013
    Сообщения:
    9
    Симпатии:
    0
    Код.
    Код (Text):
    1. <?php
    2.  
    3. date_default_timezone_set("Europe/Moscow");
    4.  
    5. $ch1 = '26.12.10';
    6. echo $ch1.'<br>';
    7. echo date('Y-m-d H:i:s', strtotime($ch1));
    8. echo '<br><br>';
    9.  
    10. $ch2 = '19.11.06';
    11. echo $ch2.'<br>';
    12. echo date('Y-m-d H:i:s', strtotime($ch2));
    13.  
    14. ?>
    Выдает:
    Вопрос: почему 2010-й год конвертируется нормально, а 2006-й год превращается в 2013 ?
     
  2. romach

    romach Старожил

    С нами с:
    26 окт 2013
    Сообщения:
    2.904
    Симпатии:
    719
    Потому что во втором случае пхп воспринимает вашу дату как время 19.11.06 - 2013-10-31 19:11:06
     
  3. rc_2013

    rc_2013 Активный пользователь

    С нами с:
    30 янв 2013
    Сообщения:
    9
    Симпатии:
    0
    спасибо. проблему удалось решить с помощью конструкции вида

    Код (Text):
    1. $date = date_create_from_format('j-M-Y', '15-Feb-2009');
    2. echo date_format($date, 'Y-m-d');
    со страницы http://php.ru/manual/datetime.createfromformat.html.