Время будет идти по времени вашего сервера. Простой обходной путь для этого - вручную установить часовой пояс, используя date_default_timezone_setперед date()вызовом time()функции или .
Я в Мельбурне, Австралия, поэтому у меня есть что-то вроде этого:
Вызов time () избыточен, date () автоматически использует текущее время.
слишком много php
11
ОП никогда не спрашивал о часовом поясе. Более простой и правильный ответ просто показал бы время сервера.
AyexeM
43
@AyexeM Я действительно оценил дополнительную информацию о часовом поясе. Это спасло меня от второго поиска.
Маркиззо
5
Вы можете получить все часовые пояса отсюда Часовой пояс
Юсеф Альтаф
13
@AyexeM Более простой и правильный ответ - не опустить потенциально важную и связанную информацию, а вместо этого ответить на вопрос, как вы предлагаете, но затем предоставить дополнительную информацию о часовых поясах под ним. Нет необходимости опускать потенциально важную информацию только потому, что ее не запрашивали.
Джейми
524
// 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
1
Спасибо за ссылку на поддерживаемые часовые пояса, я собирался его погуглить :)
htafoya
190
Начиная с PHP 5.2.0вы можете использовать DateTime()класс:
use \Datetime;
$now =newDateTime();
echo $now->format('Y-m-d H:i:s');// MySQL datetime format
echo $now->getTimestamp();// Unix Timestamp -- Since PHP 5.3
И указать timezone:
$now =newDateTime(null,newDateTimeZone('America/New_York'));
$now->setTimezone(newDateTimeZone('Europe/London'));// Another way
echo $now->getTimezone();
это хороший ответ, но вы забыли сказать, что нам нужно использовать \ Datetime перед вызовом :) ty
Amor.o
@ Amor.o Спасибо за хедз-ап, я обновил ответ сейчас - хотя немного поздно, и я честно не могу вспомнить получение уведомления для вашего комментария. Что касается использования Datatimeпространства имен; Я не могу вспомнить, было ли это в 2013 году, и я не писал никакого 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)
PHP time () возвращает текущую временную метку Unix. При этом вы можете использовать функцию date () для форматирования в соответствии с вашими потребностями.
$date = date('Format String', time());
Как отметил Паоло в комментариях, второй аргумент является излишним. Следующий фрагмент кода эквивалентен приведенному выше:
Стоит отметить, что метка времени, возвращаемая time()функцией, не зависит от часового пояса. (Так что звонки date_default_timezone_set("your-particular-timezone");раньше не будут иметь никакого эффекта.)
ban-geoengineering
@ ban-geoengineering - не уверен, что вы подразумеваете под «независимым от часового пояса»; это "зависит" от часового пояса, на котором установлен сервер? Вы можете настроить сервер на восточном побережье на часовой пояс на западном побережье или наоборот.
Нил Дэвис
56
Вы можете использовать как $_SERVER['REQUEST_TIME']переменную, так и time()функцию. Оба они возвращают метку времени Unix.
В большинстве случаев эти два решения будут давать одинаковую метку времени Unix . Разница между ними заключается в том, что она $_SERVER['REQUEST_TIME']возвращает отметку времени самого последнего запроса к серверу и time()возвращает текущее время. Это может создать незначительные различия в точности в зависимости от вашего приложения, но для большинства случаев обоих этих решений должно быть достаточно.
Исходя из приведенного выше примера кода, вы захотите отформатировать эту информацию после получения метки времени Unix . Неформатированное время Unix выглядит так:1232659628
Таким образом, чтобы получить что-то, что будет работать, вы можете использовать date()функцию для его форматирования.
Хороший справочник по способам использования этой date()функции находится в руководстве по PHP .
Например, следующий код возвращает дату, которая выглядит следующим образом 01/22/2009 04:35:00 pm:
Возвращает строку, отформатированную в соответствии с заданной строкой формата, используя данную целочисленную метку времени или текущее время, если метка времени не указана.
Примеры:
$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)
Для нового программиста 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));
когда вы хотите использовать PHP с ООП, это лучший способ получить дату и время.
<?php
// Specified date/time in your computer's time zone.
$date =newDateTime('2000-01-01');
echo $date->format('Y-m-d H:i:sP')."\n";// Specified date/time in the specified time zone.
$date =newDateTime('2000-01-01',newDateTimeZone('Pacific/Nauru'));
echo $date->format('Y-m-d H:i:sP')."\n";// Current date/time in your computer's time zone.
$date =newDateTime();
echo $date->format('Y-m-d H:i:sP')."\n";// Current date/time in the specified time zone.
$date =newDateTime(null,newDateTimeZone('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 =newDateTime('@946684800');
echo $date->format('Y-m-d H:i:sP')."\n";// Non-existent values roll over.
$date =newDateTime('2000-02-30');
echo $date->format('Y-m-d H:i:sP')."\n";?>
Если вы используете Composer , 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 и т. Д., Но я бы определенно согласился с этим, чтобы показать все три типа и использования: процедурный, объектно-ориентированный и OOP-фреймворк ,
s3c
1
@ s3c Я мог бы ответить на что-то подобное, но вопрос «Как мне узнать текущую дату и время в PHP?», наш главный фокус должен быть на этом вопросе. :)
Что я имею в виду, когда EST возвращается, когда я PST ... но почему? Это время сервера и сервер EST? Могу ли я получить время пользователей? У их сервера может быть другой часовой пояс, нет?
Функция date - это время вашего сервера, либо проверьте его, либо временно установите / w PHP перед запуском date.
TravisO
спасибо, мой сервис не должен обновляться с php, потому что O работает для GMT, но не P или "e" часовой пояс ... спасибо !!
Это $ date = date ('m / d / Y h: i: s a', time ()); получает дату сервера, но все еще не получает мне дату пользователя. Это показывает мне в EST, когда я в PST. Я хочу получить дату, когда пользователь отправляет форму, и, как и я, их сервер может находиться в другом часовом поясе.
На самом деле, теперь, когда я думаю об этом, время не так важно, как дата. СПАСИБО ВСЕМ!!
18
echo date("d-m-Y H:i:sa");
Этот код получит дату и время сервера, на котором выполняется код.
Понравился за вводящий в заблуждение ответ. Нет, он не получит время вашего локального компьютера, если вы не используете сервер также локально. Он получит дату и время сервера.
MattWithoos
@MattWithoos - «Этот код получит дату и время« сервера », который он ничего не сказал о« локальной машине », о которой вы говорили. Вам также не нужно запускать сервер« локально »- вы можете иметь сервер в любой точке мира установлен часовой пояс, который вы хотите. Ваш нисходящий голос был совершенно неверным и безо всякой причины
Нил Дэвис,
1
@NealDavis Вы думали посмотреть на редактирование? Я разместил этот комментарий, предложил изменить неверную информацию и тем временем дождался ее утверждения. Теперь он одобрен и показывает правильную информацию.
MattWithoos
1
@NealDavis Кроме того, если вам надоело читать оригинальный пост, в нем буквально говорилось: «Этот код получит дату и время вашего локального компьютера (ПК)». Это вводит в заблуждение.
Согласно статье Как получить текущую дату (NOW) с помощью 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
// 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)?>
В dateфункция возвращает строку , отформатированного в соответствии с заданным форматом строки , используя заданное целое число или временную метку текущего времени , если ни временная метка не задана. Другими словами, timestampявляется необязательным и по умолчанию имеет значение time ().
И параметры -
Формат - Обязательно. Определяет формат отметки времени
отметка времени - (необязательно). Указывает отметку времени. По умолчанию текущая дата и время
Как получить простое свидание
Обязательный параметр формата date()функции указывает, как форматировать date (or time).
Вот некоторые символы, которые обычно используются для дат:
d - представляет день месяца (с 01 по 31)
m - представляет месяц (от 01 до 12)
Y - представляет год (из четырех цифр)
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 () - форматирует местное время / дату как целое число
// 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));
$date = date('m/d/Y h:i:s a', time());
Ответы:
Время будет идти по времени вашего сервера. Простой обходной путь для этого - вручную установить часовой пояс, используя
date_default_timezone_set
передdate()
вызовомtime()
функции или .Я в Мельбурне, Австралия, поэтому у меня есть что-то вроде этого:
Или другой пример - Лос-Анджелес - США :
Вы также можете увидеть, в каком часовом поясе находится сервер, через:
Так что-то вроде:
Таким образом, краткий ответ на ваш вопрос будет:
Тогда все время будет в часовом поясе, который вы только что установили :)
источник
Для получения справки о часовом поясе см. Список поддерживаемых часовых поясов .
источник
Начиная с PHP
5.2.0
вы можете использоватьDateTime()
класс:И указать
timezone
:источник
Datatime
пространства имен; Я не могу вспомнить, было ли это в 2013 году, и я не писал никакого PHP-кода годами. В любом случае, ваше предложение кажется правильным, поэтому еще раз спасибо.Ссылка: вот ссылка
Это может быть более надежным, чем просто добавление или вычитание количества секунд в дне или месяце к метке времени из-за перехода на летнее время.
Код PHP
источник
PHP time () возвращает текущую временную метку Unix. При этом вы можете использовать функцию date () для форматирования в соответствии с вашими потребностями.
Как отметил Паоло в комментариях, второй аргумент является излишним. Следующий фрагмент кода эквивалентен приведенному выше:
источник
Вы можете использовать
$_SERVER['REQUEST_TIME']
переменную (доступна с PHP 5.1.0) илиtime()
функцию для получения текущей метки времени Unix.источник
time()
функцией, не зависит от часового пояса. (Так что звонкиdate_default_timezone_set("your-particular-timezone");
раньше не будут иметь никакого эффекта.)Вы можете использовать как
$_SERVER['REQUEST_TIME']
переменную, так иtime()
функцию. Оба они возвращают метку времени Unix.В большинстве случаев эти два решения будут давать одинаковую метку времени Unix . Разница между ними заключается в том, что она
$_SERVER['REQUEST_TIME']
возвращает отметку времени самого последнего запроса к серверу иtime()
возвращает текущее время. Это может создать незначительные различия в точности в зависимости от вашего приложения, но для большинства случаев обоих этих решений должно быть достаточно.Исходя из приведенного выше примера кода, вы захотите отформатировать эту информацию после получения метки времени Unix . Неформатированное время Unix выглядит так:
1232659628
Таким образом, чтобы получить что-то, что будет работать, вы можете использовать
date()
функцию для его форматирования.Хороший справочник по способам использования этой
date()
функции находится в руководстве по PHP .Например, следующий код возвращает дату, которая выглядит следующим образом
01/22/2009 04:35:00 pm
:источник
$_SERVER['REQUEST_TIME']
?Функция даты PHP может сделать эту работу.
свидание()
Описание:
Возвращает строку, отформатированную в соответствии с заданной строкой формата, используя данную целочисленную метку времени или текущее время, если метка времени не указана.
Примеры:
источник
Обновить
Для формата даты полезна функция PHP date () .
источник
источник
Для нового программиста PHP может возникнуть путаница, почему существует множество методов для получения текущей даты и времени и какой метод использовать в своем проекте.
1.
date
метод (PHP 4, PHP 5, PHP 7)Это очень распространенный и самый простой способ получить дату и время в php.
Вы можете узнать больше об этом здесь
2.
DateTime
класс (PHP 5> = 5.2.0, PHP 7)когда вы хотите использовать PHP с ООП, это лучший способ получить дату и время.
Вы можете узнать больше об этом здесь
3. Углеродная дата и время
Если вы используете Composer , Laravel , Symfony или любой другой фреймворк, это лучший способ узнать дату и время. Также этот пакет расширяет класс DateTime в php, поэтому вы используете все методы класса Datetime. Это встроенные фреймворки, такие как laravel, поэтому вам не нужно устанавливать его отдельно.
Вы можете узнать больше об этом здесь
Надеюсь, это поможет, и если вы знаете какой-либо другой способ узнать дату и время, не стесняйтесь редактировать ответ.
источник
Использование:
Оно работает.
источник
Этот код получит дату и время сервера, на котором выполняется код.
источник
Вы также можете использовать этот формат:
Или
источник
Согласно статье Как получить текущую дату (NOW) с помощью PHP , существует два распространенных способа получения текущей даты. Чтобы получить текущую дату (сейчас) с PHP, вы можете использовать
date
класс с любой версией PHP или лучше сdatetime
классом PHP> = 5.2.Различные выражения формата даты доступны здесь.
Пример использования даты
Это выражение вернется сейчас в формате
Y-m-d H:i:s
.Пример использования класса datetime
Это выражение вернется сейчас в формате
Y-m-d H:i:s
.источник
Отпечатки как это
Воскресенье, 9 декабря 2012 г.
источник
источник
Установите часовой пояс:
Затем вызовите функции даты
источник
В
date
функция возвращает строку , отформатированного в соответствии с заданным форматом строки , используя заданное целое число или временную метку текущего времени , если ни временная метка не задана. Другими словами,timestamp
является необязательным и по умолчанию имеет значение time ().И параметры -
Как получить простое свидание
Обязательный параметр формата
date()
функции указывает, как форматироватьdate (or time)
.Вот некоторые символы, которые обычно используются для дат:
Другие символы, такие как,
"/", ".", or "-"
также могут быть вставлены между символами, чтобы добавить дополнительное форматирование.Пример ниже форматирует сегодняшнюю дату тремя различными способами:
Несколько полезных ссылок
источник
Если вы хотите другой график, пожалуйста, используйте:
источник
источник
Формат даты тоже зависит:
источник
Вы можете использовать этот код:
источник
Я обнаружил, что самый простой способ узнать текущее время в PHP - это что-то вроде этого.
источник
Другой простой способ - взять метку времени текущей даты и времени. Используйте функцию mktime () :
Затем вы можете преобразовать это в другой формат даты:
Больше форматов даты здесь: http://php.net/manual/en/function.date.php
источник
Очень просто
источник
источник
Если вы бангладешский, и если вы хотите получить время Дакки, используйте это:
источник
Обычно эта функция для даты полезна для всех: дата («г / м / д»);
Но время - это нечто иное, потому что функция времени зависит от версии PHP или системной даты.
Поэтому, вероятно, используйте это так, чтобы получить наш собственный часовой пояс:
Эта функция показывает время 24 часа.
источник
Вот некоторые символы, которые обычно используются для времен:
а - строчные Анте меридием и пост меридием (утра или вечера)
Получите ваш часовой пояс
Проверьте это (необязательно)
Для свидания
Вот некоторые символы, которые обычно используются для дат:
Источник-W3-школа
источник
.
вdate("Y/m/d") . ;
?