Как получить текущую дату и время в PHP?

Какая функция PHP может вернуть текущую дату /время?

вопрос задан 22.01.2009
Charlie White
170 репутация

33 ответов


  • 543 рейтинг

    Время будет зависеть от вашего сервера. Легким обходным путем для этого является ручная установка часового пояса с помощью date_default_timezone_set перед вызовом date() или time() функций.

    Я в Мельбурне, Австралия, поэтому у меня есть что-то вроде этого:

     date_default_timezone_set('Australia/Melbourne');
     

    Или другим примером является LA - US :

     date_default_timezone_set('America/Los_Angeles');
     

    Вы также можете узнать, в какой временной зоне находится сервер:

     date_default_timezone_get();
     

    Итак, что-то вроде:

     $timezone = date_default_timezone_get();
    echo "The current server timezone is: " . $timezone;
     

    Поэтому короткий ответ на ваш вопрос:

     // Change the line below to your timezone!
    date_default_timezone_set('Australia/Melbourne');
    $date = date('m/d/Y h:i:s a', time());
     

    Тогда все время будет в часовом поясе, который вы только что установили :)

    ответ дан NJ., с репутацией 5590, 23.01.2009
  • 398 рейтинг
     // Simply:
    $date = date('Y-m-d H:i:s');
    
    // Or:
    $date = date('Y/m/d H:i:s');
    
    // This would return the date in the following formats respectively:
    $date = '2012-03-06 17:33:07';
    // Or
    $date = '2012/03/06 17:33:07';
    
    /** 
     * This time is based on the default server time zone.
     * If you want the date in a different time zone,
     * say if you come from Nairobi, Kenya like I do, you can set
     * the time zone to Nairobi as shown below.
     */
    
    date_default_timezone_set('Africa/Nairobi');
    
    // Then call the date functions
    $date = date('Y-m-d H:i:s');
    // Or
    $date = date('Y/m/d H:i:s');
    
    // date_default_timezone_set() function is however
    // supported by PHP version 5.1.0 or above.
     

    Для справки о часовых поясах см. Список поддерживаемых часовых поясов.

    ответ дан Shadrack B. Orina, с репутацией 5020, 6.03.2012
  • 166 рейтинг

    С PHP 5.2.0 вы можете сделать это с помощью ООП и DateTime() (конечно, если вы предпочитаете ООП):

     $now = new DateTime();
    echo $now->format('Y-m-d H:i:s');    // MySQL datetime format
    echo $now->getTimestamp();           // Unix Timestamp -- Since PHP 5.3
     

    И чтобы указать timezone :

     $now = new DateTime(null, new DateTimeZone('America/New_York'));
    $now->setTimezone(new DateTimeZone('Europe/London'));    // Another way
    echo $now->getTimezone();
     
    ответ дан Mahdi, с репутацией 5813, 29.05.2013
  • 78 рейтинг

    Ссылка: Вот ссылка

    Это может быть более надежным, чем простое добавление или вычитание количества секунд в день или месяц в метку времени из-за летнего времени.

    Код PHP

     // Assuming today is March 10th, 2001, 5:16:18 pm, and that we are in the
    // Mountain Standard Time (MST) Time Zone
    
    $today = date("F j, Y, g:i a");                 // March 10, 2001, 5:16 pm
    $today = date("m.d.y");                         // 03.10.01
    $today = date("j, n, Y");                       // 10, 3, 2001
    $today = date("Ymd");                           // 20010310
    $today = date('h-i-s, j-m-y, it is w Day');     // 05-16-18, 10-03-01, 1631 1618 6 Satpm01
    $today = date('\i\t \i\s \t\h\e jS \d\a\y.');   // it is the 10th day.
    $today = date("D M j G:i:s T Y");               // Sat Mar 10 17:16:18 MST 2001
    $today = date('H:m:s \m \i\s\ \m\o\n\t\h');     // 17:03:18 m is month
    $today = date("H:i:s");                         // 17:16:18
    $today = date("Y-m-d H:i:s");                   // 2001-03-10 17:16:18 (the MySQL DATETIME format)
     
    ответ дан ShapCyber, с репутацией 1708, 29.08.2013
  • 56 рейтинг

    Вы можете использовать переменную $_SERVER['REQUEST_TIME'] (доступную с PHP 5.1.0) или функцию time() чтобы получить текущую временную метку Unix.

    ответ дан Gumbo, с репутацией 493901, 22.01.2009
  • 56 рейтинг

    Время PHP () возвращает текущую временную метку unix. При этом вы можете использовать функцию date () для ее форматирования в соответствии с вашими потребностями.

     $date = date('Format String', time());
     

    Как отметил Паоло в комментариях, второй аргумент лишний. Следующий фрагмент эквивалентен приведенному выше:

     $date = date('Format String');
     
    ответ дан Rob Hruska, с репутацией 89759, 22.01.2009
  • 38 рейтинг

    Вы можете использовать переменную $ _SERVER ['REQUEST_TIME'] или функцию ** time () **. Оба они возвращают временную метку Unix.

    Большую часть времени эти два решения дают точную отметку времени Unix. Разница между ними заключается в том, что $ _SERVER ['REQUEST_TIME'] возвращает метку времени последнего запроса сервера, а time () возвращает текущее время. Это может привести к незначительным различиям в точности в зависимости от вашего приложения, но в большинстве случаев оба этих решения должны быть достаточными.

    Основываясь на приведенном выше примере кода, вы захотите отформатировать эту информацию после получения отметки времени Unix. Неформатированная временная метка Unix выглядит так ...

    Unix Теги: 1232659628

    Поэтому, чтобы получить что-то, что будет работать, вы можете использовать функцию date () для ее форматирования.

    Хорошая ссылка на способы использования функции date () находится на страницах руководства PHP, здесь ...

    http://us.php.net/date

    Например, следующий код возвращает дату, которая выглядит так:

    22.01.2009 16:35:00

     echo date("m/d/Y h:i:s a", time());
     
    ответ дан Grizzly Peak Software, с репутацией 901, 22.01.2009
  • 23 рейтинг
      $date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
     echo $date->format('d-m-Y H:i:s');
     

    Обновить

      //Also get am/pm in datetime:
     echo $date->format('d-m-Y H:i:s a'); // output 30-12-2013 10:16:15 am
     

    Для формата даты функция PHP date () полезна.

    ответ дан Kailas, с репутацией 1961, 7.06.2013
  • 18 рейтинг
     $date = date('m/d/Y h:i:s a', time());
     

    работает, но как узнать, что это EST, PST?

    ответ дан Grizzly Peak Software, с репутацией 901, 22.01.2009
  • 13 рейтинг

    Согласно статье « Как получить текущее время» («СЕЙЧАС») с PHP существует два распространенных способа получения текущей даты. Чтобы получить текущее время-время (теперь) с помощью PHP, вы можете использовать класс date с любой версией PHP или лучше datetime класс с PHP> = 5.2.

    Здесь доступны различные выражения формата даты.

    Пример использования даты

    Это выражение вернется в формат Y-m-d H:i:s .

     <?php
        echo date('Y-m-d H:i:s');
    ?>
     

    Пример использования класса datetime

    Это выражение вернется в формате Y-m-d H:i:s в формате Y-m-d H:i:s .

     <?php
        $dt = new DateTime();
        echo $dt->format('Y-m-d H:i:s');
    ?>
     
    ответ дан David, с репутацией 2073, 26.09.2013
  • 12 рейтинг
     <?php
    echo "<b>".date('l\, F jS\, Y ')."</b>";
    ?>
     

    Печатает как это

    Воскресенье, 9 декабря 2012 г.

    ответ дан AMB, с репутацией 1089, 9.12.2012
  • 7 рейтинг

    Я обнаружил, что самый простой способ получить текущее время в PHP - это что-то вроде этого.

     //Prints out something like 10:00am Just be sure to set your timezone correctly.
    date_default_timezone_set("America/Chicago");
    $TIME = date('G:ia'); 
     
    ответ дан Bullyen, с репутацией 496, 19.10.2012