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

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

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

I am the Most Stupid Person 06.04.2018 07:32

похоже, что мы не можем узнать время системы, которая посещает сайт, кроме как с помощью javascript. Для PHP мы можем установить фиксированный часовой пояс, чтобы получить текущее время этого пояса.

Rana Nadeem 12.06.2020 13:25
Стоит ли изучать PHP в 2026-2027 годах?
Стоит ли изучать PHP в 2026-2027 годах?
Привет всем, сегодня я хочу высказать свои соображения по поводу вопроса, который я уже много раз получал в своем сообществе: "Стоит ли изучать PHP в...
Symfony Station Communiqué - 7 июля 2023 г
Symfony Station Communiqué - 7 июля 2023 г
Это коммюнике первоначально появилось на Symfony Station .
Оживление вашего приложения Laravel: Понимание режима обслуживания
Оживление вашего приложения Laravel: Понимание режима обслуживания
Здравствуйте, разработчики! В сегодняшней статье мы рассмотрим важный аспект управления приложениями, который часто упускается из виду в суете...
Установка и настройка Nginx и PHP на Ubuntu-сервере
Установка и настройка Nginx и PHP на Ubuntu-сервере
В этот раз я сделаю руководство по установке и настройке nginx и php на Ubuntu OS.
Коллекции в Laravel более простым способом
Коллекции в Laravel более простым способом
Привет, читатели, сегодня мы узнаем о коллекциях. В Laravel коллекции - это способ манипулировать массивами и играть с массивами данных. Благодаря...
Как установить PHP на Mac
Как установить PHP на Mac
PHP - это популярный язык программирования, который используется для разработки веб-приложений. Если вы используете Mac и хотите разрабатывать...
905
2
2 527 170
39

Ответы 39

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

Стоит отметить, что метка времени, возвращаемая функцией time(), не зависит от часового пояса. (Так что вызов date_default_timezone_set("your-particular-timezone"); раньше не даст никакого эффекта.)

ban-geoengineering 16.07.2014 16:35

@ ban-geoengineering - не уверен, что вы имеете в виду под «независимым от часового пояса»; это "зависит" от часового пояса сервера? Вы можете настроить сервер на восточном побережье на часовой пояс на западном побережье или наоборот.

Neal Davis 23.01.2018 23:11

PHP время() возвращает текущую временную метку Unix. При этом вы можете использовать функцию Дата(), чтобы отформатировать его в соответствии с вашими потребностями.

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

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

$date = date('Format String');

второй аргумент функции даты считается time (), если он оставлен пустым.

Paolo Bergantino 07.07.2009 11:10

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

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

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

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

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

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

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

Как разные веб-серверы обрабатывают $_SERVER['REQUEST_TIME'] ?

Pacerier 19.03.2015 07:20

Лучший ответ безоговорочно. Вы даже добавляете, как получить от отметки времени UNIX до даты обычного человека, что очень ценится.

Kolob Canyon 14.07.2017 20:16

Использовать:

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

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

Я имею в виду, что время возвращается по EST, когда я PST ... но почему? Это время сервера, а сервер - EST? Могу ли я получить время пользователей? Их сервер может быть в другом часовом поясе, не так ли?

Mike 23.01.2009 01:38

Функция date - это время вашего сервера, либо проверьте его, либо временно установите его / w PHP перед запуском date.

TravisO 23.01.2009 01:48

спасибо, мой сервис не должен быть обновлен с php, потому что O работает для GMT, но не для часового пояса P или "e" ... спасибо !!

Mike 23.01.2009 01:54

Это $ date = date ('m / d / Y h: i: s a', time ()); получает дату сервера, но все еще не получает дату пользователя. Это показывает мне в EST, когда я в PST. Я хочу получить дату, когда пользователь отправляет форму, и, как и я, их сервер может находиться в другом часовом поясе.

Mike 23.01.2009 01:57

На самом деле сейчас, когда я думаю об этом, время не так важно, как дата. СПАСИБО ВСЕМ!!

Mike 23.01.2009 02:07

Я думаю, что время пользователя нужно будет получать с помощью Javascript, поскольку PHP работает на вашем веб-сервере, а Javascript - на их компьютере.

Kenny Johnson 07.05.2013 00:43

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

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

date_default_timezone_set('Australia/Melbourne');

Или другой пример - LA - нас:

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

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

Вызов time () является избыточным, date () автоматически использует текущее время.

too much php 23.01.2009 03:26

Спасибо! Мне было интересно, как изменить часовой пояс на функции date() :)

Nathan 03.10.2011 10:25

@oneofakind America / Los_Angeles

ShayneStatzell 04.09.2013 04:34

OP никогда не спрашивал о часовом поясе. Более простой и правильный ответ просто показывает время сервера.

AyexeM 21.02.2014 20:38

@AyexeM Я действительно оценил дополнительную информацию о часовом поясе. Это избавило меня от второго поиска.

Marquizzo 08.10.2014 23:11

Вы можете получить все часовые пояса отсюда Часовой пояс

Yousef Altaf 05.01.2015 15:17

@AyexeM Более простым и правильным ответом было бы не пропустить потенциально важную и связанную информацию, а вместо этого ответить на вопрос, как вы предлагаете, а затем предоставить дополнительную информацию о часовых поясах под ним. Нет необходимости пропускать потенциально важную информацию только потому, что ее не просили.

Jamie 27.02.2015 12:08

в конце концов, вы хотите сохранить дату / время в базе данных, если это то, что нужно; почему бы просто не использовать команды MySQL для работы с датой и временем. MySQL обеспечивает значительную гибкость в форматировании даты и времени.. возьмем этот пример: INSERT INTO orders (order_item, order_date, order_delivery) VALUES ('iPhone 8Gb', NOW(), DATE_ADD(NOW(), INTERVAL 14 DAY));. См. Даты и время в MySQL

wpcoder 15.10.2017 06:40
// 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.

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

Это гораздо более прямой ответ, чем первый. Спасибо!

dev_willis 20.11.2015 17:07

Спасибо за ссылку поддерживаемых часовых поясов, я собирался погуглить :)

htafoya 07.12.2017 01:43

Я обнаружил, что самый простой способ получить текущее время в 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'); 
<?php
echo "<b>".date('l\, F jS\, Y ')."</b>";
?>

Отпечатки, подобные этой

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

Начиная с PHP 5.2.0, вы можете использовать класс DateTime():

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

это хороший ответ, но ты забыл сказать, что нам нужно использовать \ Datetime перед его вызовом :) ty

Amor.o 22.07.2019 10:46

@ Amor.o Спасибо за предупреждение, я обновил ответ сейчас, хотя и немного поздно, и я, честно говоря, не могу вспомнить, чтобы получал уведомление о вашем комментарии. Относительно использования пространства имен Datatime; Я не могу вспомнить, было ли это так в 2013 году, а я не писал PHP-код в течение многих лет. Тем не менее, ваше предложение кажется правильным, поэтому еще раз спасибо.

Mahdi 16.03.2020 11:38
 $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 ().

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

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

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

конечно лучший ~

Yash Kumar Verma 22.09.2017 19:52

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

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

Если вам нужна другая шкала времени, используйте:

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

Что вы имеете в виду под «шкалой времени»?

Peter Mortensen 02.02.2014 14:43

"часовой пояс", наверное.

Saneem 11.03.2014 19:26

Я считаю, что @Jaymin может означать, если вы хотите настроить время вперед на день, на месяц назад и т. д.

Just Plain High 05.05.2014 15:49

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

date_default_timezone_set('Asia/Calcutta');

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

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

Эту работу может выполнять функция 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)
// 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));

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

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

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

И параметры -

format - Required. Specifies the format of the timestamp

timestamp - (Optional) Specifies a timestamp. Default is the current date and time

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

Обязательный параметр формата функции 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 () - Форматировать GMT / UTC дата / время
  • idate () - Форматировать местное время / дата как целое число
  • getdate () - Получить информация о дате / времени
  • getlastmod () - Получает время последней модификации страницы
  • mktime () - Получить Unix отметка времени для даты
  • strftime () - Формат местное время / дата в соответствии с настройками локали
  • время() - Обратный ток Отметка времени Unix
  • strtotime () - Разобрать любое текстовое описание даты и времени на английском языке в Unix отметка времени
  • Предопределенная дата и время Константы

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

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

Или же

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

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

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

Другой простой способ - взять метку времени текущей даты и времени. Используйте функцию 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

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

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

its very simple

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

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

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

Проголосовали против за вводящий в заблуждение ответ. Нет, он не получит время вашего локального компьютера, если только вы не запустите сервер локально. Он получит дату и время сервера.

MattWithoos 09.07.2017 08:16

@MattWithoos - «Этот код получит дату и время« сервера », он ничего не сказал о« локальной машине », о которой вы сказали. Вам также не обязательно запускать свой сервер« локально »- у вас может быть сервер в любой точке мира установлен любой часовой пояс. Ваш голос "против" был абсолютно неправильным и без всякой причины.

Neal Davis 23.01.2018 23:06

@NealDavis Вы думали посмотреть на редактирование? Я разместил этот комментарий, предложил исправить неверную информацию и тем временем ждал его утверждения. Теперь он одобрен и показывает правильную информацию.

MattWithoos 25.01.2018 01:19

@NealDavis Кроме того, если вы удосужились прочитать исходный пост, он буквально сказал: «Этот код получит дату и время вашего локального компьютера (ПК)». Это полное заблуждение.

MattWithoos 25.01.2018 01:21

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

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

Это трудно понять. Вы можете уточнить?

Peter Mortensen 23.02.2019 02:58

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

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

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

  1. h - 12-часовой формат часа с ведущими нулями (от 01 до 12)
  2. i - Минуты с ведущими нулями (от 00 до 59)
  3. s - секунды с ведущими нулями (от 00 до 59)
  4. a - строчные буквы Ante meridiem и Post meridiem (am или pm)

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

<?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-Школы

Какова цель замыкающего . в date("Y/m/d") . ;?

Peter Mortensen 23.02.2019 03:01

Я думаю, чтобы объединить другую строку или переменную. Спасибо за ваши правки. :-)

Raheel Khan 01.03.2019 23:44

Мы можем использовать функцию 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");
?>

Лучший способ получить текущее время и дату - использовать функция даты в PHP:

$date = date('FORMAT'); // FORMAT E.g.: Y-m-d H:i:s

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

С меткой времени Unix:

$now_date = date('FORMAT', time()); // FORMAT Eg : Y-m-d H:i:s

Чтобы установить часовой пояс сервера:

date_default_timezone_set('Asia/Calcutta');

Другой список часовых поясов - здесь.

Разница во времени сервера Linux и часового пояса PHP time () выглядит следующим образом:

<?php
    putenv("TZ=Asia/Kabul");
    $t = time();
    echo date('d/m/Y H:i:sa', $t);
?>

Обычно эта функция для даты полезна для всех: дата ("Г / м / д");

Но время - это другое дело, потому что функция времени зависит либо от версии PHP, либо от системной даты.

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

$date = new DateTime('now', new DateTimeZone('Asia/Kolkata'));
echo $date->format('H:m:s');

Эта функция показывает время в 24-часовом формате.

Он установил для меня дату 1970 года!

iKamy 25.03.2019 03:55
echo date('y-m-d'); // Today

This will return today's date.

Очень простой

date_default_timezone_set('Asia/Kolkata');
$date = date('m/d/Y H:i:s', time());

Я этого не видел.

Kowsigan Atsayam 02.04.2019 20:56

Поскольку новый программист PHP может запутаться, почему существует множество методов для получения текущей даты и времени и какой из них использовать в своем проекте.

1. Метод date (PHP 4, PHP 5, PHP 7)

Это очень распространенный и очень простой способ получить дату и время в php.

// 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 2005 03:12:46 PM
echo date('l jS \of F Y h:i:s A');

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

/* 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: 2000-07-01T00:00:00+00:00
echo date(DATE_ATOM, mktime(0, 0, 0, 7, 1, 2000));

Подробнее об этом можно узнать в здесь

2. Класс DateTime (PHP 5> = 5.2.0, PHP 7)

если вы хотите использовать PHP с ООП, это лучший способ получить дату и время.

<?php
// Specified date/time in your computer's time zone.
$date = new DateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Specified date/time in the specified time zone.
$date = new DateTime('2000-01-01', new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in your computer's time zone.
$date = new DateTime();
echo $date->format('Y-m-d H:i:sP') . "\n";

// Current date/time in the specified time zone.
$date = new DateTime(null, new DateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP') . "\n";

// Using a UNIX timestamp.  Notice the result is in the UTC time zone.
$date = new DateTime('@946684800');
echo $date->format('Y-m-d H:i:sP') . "\n";

// Non-existent values roll over.
$date = new DateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP') . "\n";
?>

Подробнее об этом можно узнать в здесь

3. Пакет времени Carbon Date

если вы используете Композитор, Laravel, Symfony или любой другой фреймворк, это лучший способ получить дату и время. Также этот пакет расширяет класс DateTime в php, поэтому вы можете использовать весь метод класса Datetime. Это встроенные фреймворки, такие как laravel, поэтому вам не нужно устанавливать его отдельно.

printf("Right now is %s", Carbon::now()->toDateTimeString());
printf("Right now in Vancouver is %s", Carbon::now('America/Vancouver')); // automatically converted to string
$tomorrow = Carbon::now()->addDay();
$lastWeek = Carbon::now()->subWeek();

// Carbon embed 823 languages:
echo $tomorrow->locale('fr')->isoFormat('dddd, MMMM Do YYYY, h:mm');
echo $tomorrow->locale('ar')->isoFormat('dddd, MMMM Do YYYY, h:mm');

$officialDate = Carbon::now()->toRfc2822String();

$howOldAmI = Carbon::createFromDate(1975, 5, 21)->age;

$noonTodayLondonTime = Carbon::createFromTime(12, 0, 0, 'Europe/London');

$internetWillBlowUpOn = Carbon::create(2038, 01, 19, 3, 14, 7, 'GMT');

if (Carbon::now()->isWeekend()) {
    echo 'Party!';
}
echo Carbon::now()->subMinutes(2)->diffForHumans(); // '2 minutes ago'

Вы можете узнать больше об этом в здесь

Надеюсь, это поможет, и если вы знаете какой-либо другой способ узнать дату и время, не стесняйтесь редактировать ответ.

Мне понравились некоторые другие ответы, которые показывают, как отформатировать строку даже с помощью настраиваемого текста или, скажем, какой формат лучше всего подходит для MySQL и т.д., но я определенно согласен с этим, чтобы показать все три типа и использования: процедурный, объектно-ориентированный и ООП-фреймворк. .

s3c 29.04.2020 09:54

@ s3c Я мог бы ответить примерно так, но вопрос: «Как мне получить текущую дату и время в PHP?», мы должны сосредоточиться на этом вопросе. :)

Supun Praneeth 29.04.2020 14:43

Вы можете просто использовать этот код, чтобы получить текущую дату и время.

echo date('r', time());

просто используйте: date("Y-m-d H:i:s"), это даст вам вашу дату и время, например, «2020-08-22 12:20:30». добавьте date_default_timezone_set("your time zone") перед функцией date (), чтобы получить дату вашего региона / зоны. здесь вы можете найти свой часовой пояс

Вы печатаете месяц дважды, один раз там, где нужно, а другой - где минута!

Danila Vershinin 26.08.2020 17:57

Я пытаюсь использовать дату ('Y-m-d'); но почему-то год вычитается из месяца и далее с датой. следовательно, вывод сегодняшней даты (2020-11-19 = 1990)

Shardul Birje 19.11.2020 15:55

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

  • d - представляет день месяца (с 01 по 31)

  • m - представляет месяц (от 01 до 12)

  • Y - обозначает год (четырьмя цифрами)

  • l (строчная буква L) - обозначает день недели.

  • H - 24-часовой формат часа (от 00 до 23)

  • h - 12-часовой формат часа с ведущими нулями (от 01 до 12)

  • i - Минуты с ведущими нулями (от 00 до 59)

  • s - секунды с ведущими нулями (от 00 до 59)

  • a - строчные буквы Ante meridiem и Post meridiem (am или pm)

пример :

echo "Today " . date("Y/m/d") ;
echo "time " . date("h:i:sa");

Другие вопросы по теме