Как мне узнать текущую дату и время в PHP?

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

Ответ 1

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

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

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());

Тогда все время будет в указанном вами часовом поясе:)

Ответ 2

// 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.

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

Ответ 3

С 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();

Ответ 4

Ссылка: здесь ссылка

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

Код 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)

Ответ 5

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

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

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

$date = date('Format String');

Ответ 6

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

Ответ 7

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

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

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

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

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

Например, следующий код возвращает дату, которая выглядит следующим образом: 01/22/2009 04:35:00 pm:

echo date("m/d/Y h:i:s a", time());

Ответ 8

Функция даты PHP может сделать эту работу.

Дата()

Описание:

string date(string $format [, int $timestamp = time()])

Возвращает строку, отформатированную в соответствии с заданной строкой формата, используя данную целочисленную метку времени или текущее время, если метка времени не указана.

Примеры:

$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)

Ответ 9

 $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().

Ответ 10

Использование:

$date = date('m/d/Y h:i:s a', time());

Оно работает.

Ответ 11

echo date("d-m-Y H:i:sa");

Этот код получит дату и время сервера, на котором выполняется код.

Ответ 12

его очень простая

echo $date = date ('Y-m-d H: i: s');

Ответ 13

Вы также можете использовать этот формат:

$date = date("d-m-Y");

Или же

$date = date("Y-m-d H:i:s");

Ответ 14

В соответствии со статьей Как получить текущее время дня (СЕЙЧАС) с PHP существует два распространенных способа получить текущую дату. Чтобы получить текущее datetime (сейчас) с помощью 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.

<?php
    $dt = new DateTime();
    echo $dt->format('Y-m-d H:i:s');
?>

Ответ 15

<?php
echo "<b>".date('l\, F jS\, Y ')."</b>";
?>

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

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

Ответ 16

<?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)
?>

Ответ 17

Если вы хотите разную шкалу времени, используйте:

$tomorrow  = mktime(0, 0, 0, date("m")  , date("d")+1, date("Y"));
$lastmonth = mktime(0, 0, 0, date("m")-1, date("d"),   date("Y"));
$nextyear  = mktime(0, 0, 0, date("m"),   date("d"),   date("Y")+1);

date_default_timezone_set("Asia/Calcutta");
echo date("Y/m/d H:i:s");

Ответ 18

Установите часовой пояс:

date_default_timezone_set('Asia/Calcutta');

Затем вызовите функции даты

$date = date('Y-m-d H:i:s');

Ответ 19

date_default_timezone_set('Europe/Warsaw');
echo("<p class='time'>".date('H:i:s')."</p>");
echo("<p class='date'>".date('d/m/Y')."</p>");

Ответ 20

date(format, timestamp)

Функция date возвращает строку, отформатированную в соответствии с заданной строкой формата, используя данную целочисленную временную метку или текущее время, если временная метка не указана. Другими словами, timestamp является необязательной и по умолчанию имеет значение time().

И параметры -

Формат - Обязательно. Определяет формат отметки времени

timestamp - (Необязательно) Указывает временную метку. По умолчанию текущая дата и время

Как получить простое свидание

Обязательный параметр формата функции date() указывает, как форматировать date (or time).

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

  1. d - представляет день месяца (с 01 по 31)
  2. m - представляет месяц (от 01 до 12)
  3. Y - представляет год (из четырех цифр)
  4. l (нижний регистр 'L') - представляет день недели

Другие символы, такие как "/", ".", or "-" также могут быть вставлены между символами для добавления дополнительного форматирования.

Пример ниже форматирует сегодняшнюю дату тремя различными способами:

<?php
    echo "Today is " . date("Y/m/d") . "<br>";
    echo "Today is " . date("Y.m.d") . "<br>";
    echo "Today is " . date("Y-m-d") . "<br>";
    echo "Today is " . date("l");
?>

Несколько полезных ссылок

  • gmdate() - форматирует дату/время по Гринвичу /UTC
  • idate() - форматирует местное время/дату как целое число
  • getdate() - получает информацию о дате/времени
  • getlastmod() - Получает время последней модификации страницы
  • mktime() - получает метку времени Unix для даты
  • strftime() - форматирует местное время/дату в соответствии с настройками локали
  • time() - возвращает текущую метку времени Unix
  • strtotime() - анализирует любое текстовое описание даты и времени на английском языке в метку времени Unix
  • Предопределенные константы DateTime

Ответ 21

Формат даты тоже зависит:

echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm

Ответ 22

Вы можете использовать этот код:

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

Ответ 23

Я обнаружил, что самый простой способ получить текущее время в 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'); 

Ответ 24

Другой простой способ - взять метку времени текущей даты и времени. Используйте функцию mktime():

$now = mktime(); // Return timestamp of the current time

Затем вы можете преобразовать это в другой формат даты:

//// Prints something like: Thursday 26th of January 2017 01:12:36 PM
echo date('l jS \of F Y h:i:s A',$now);

Больше форматов даты здесь: http://php.net/manual/en/function.date.php

Ответ 25

// Set the default timezone to use. Available since PHP 5.1
date_default_timezone_set('UTC');


// Prints something like: Monday
echo date("l");

// Prints something like: Monday 8th of August 2016 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

// Prints: July 1, 2016 is on a Saturday
echo "July 1, 2016 is on a " . date("l", mktime(0, 0, 0, 7, 1, 2016));

/* Use the constants in the format parameter */
// Prints something like: Wed, 25 Sep 2013 15:28:57 -0700
echo date(DATE_RFC2822);

// Prints something like: 2016-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));

Ответ 26

Если вы бангладешский, и если вы хотите получить время Дакки, то используйте это:

$date = new DateTime();
$date->setTimeZone(new DateTimeZone("Asia/Dhaka"));
$get_datetime = $date->format('d.m.Y H:i:s');

Ответ 27

Вот некоторые символы, которые обычно используются для времен:

  1. ч - 12-часовой формат часа с ведущими нулями (от 01 до 12)
  2. я - минуты с ведущими нулями (от 00 до 59)
  3. s - секунды с ведущими нулями (от 00 до 59)
  4. а - строчные анте меридием и пост меридием (утра или вечера)

Получите ваш часовой пояс

<?php
    date_default_timezone_set("America/New_York");
    echo "The time is " . date("h:i:sa");
?>

Проверьте это (необязательно)

<?php
    $d = mktime(11, 14, 54, 8, 12, 2014);
    echo "Created date is " . date("Y-m-d h:i:sa", $d);
?>

Для свидания

<?php
    echo "Today is " . date("Y/m/d") . ;
    echo "Today is " . date("Y.m.d") . ;
    echo "Today is " . date("Y-m-d") . ;
    echo "Today is " . date("l");
?>

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

  1. d - представляет день месяца (с 01 по 31)
  2. m - представляет месяц (от 01 до 12)
  3. Y - представляет год (из четырех цифр)
  4. l (нижний регистр 'L') - представляет день недели

Источник-W3-школа

Ответ 28

Если вы хотите получить дату, такую как 12-3-2016, отделить значение каждого дня, месяца и года, а затем скопируйте и вставьте этот код:

$day = date("d");
$month = date("m");
$year = date("y");
print "date" . $day . "-" . $month . "-" . $year;

Ответ 29

PHP возвращает текущее время в секундах. Вам нужно отформатировать их в любом формате, который вы хотите.

<?php
    // time() returns current time in seconds
    $in_seconds = time();

    // strftime - Format a local time/date according to locale settings
    echo strftime("%m/%d/%y", $in_seconds);
?>

Ссылка: http://php.net/manual/en/function.strftime.php

Ответ 30

Мы можем использовать функцию date и установить часовой пояс по умолчанию:

<?php
    date_default_timezone_set("Asia/Kolkata");
    echo "Today is " . date("Y/m/d") . "<br>";
    echo "Today is " . date("Y.m.d") . "<br>";
    echo "Today is " . date("Y-m-d") . "<br>";
    echo "Today is " . date("l");
    echo "The time is " . date("h:i:sa");
?>