Какая функция PHP может возвращать текущую дату/время?
Время будет время вашего сервера. Легким обходным путем для этого является установка часового пояса вручную с помощью 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());
Тогда все время будет в указанном вами часовом поясе:)
date()
:)
// 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.
Для справки о временной зоне см. Список поддерживаемых часовых поясов.
С 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();
Ссылка: здесь ссылка
Это может быть более надежным, чем просто добавление или вычитание количества секунд в день или месяц в метку времени из-за летнего времени.
Код 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)
Вы можете использовать переменную $_SERVER['REQUEST_TIME']
(доступную с PHP 5.1.0) или time()
function, чтобы получить текущую временную метку Unix.
time()
не зависит от часового пояса. (Таким образом, вызов date_default_timezone_set("your-particular-timezone");
до этого не будет никакого эффекта.)
PHP time() возвращает текущую временную метку unix. При этом вы можете использовать функцию date(), чтобы отформатировать ее в соответствии с вашими потребностями.
$date = date('Format String', time());
Как отметил Паоло в комментариях, второй аргумент лишний. Следующий фрагмент эквивалентен приведенному выше:
$date = date('Format String');
PHP date функция может выполнить это задание
Описание:
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)
Вы можете использовать переменную $_ SERVER ['REQUEST_TIME'] или функцию ** time() **. Оба они возвращают временную метку Unix.
В большинстве случаев эти два решения дают точную отметку времени Unix. Разница между ними заключается в том, что $_SERVER ['REQUEST_TIME'] возвращает метку времени последнего запроса сервера, а time() возвращает текущее время. Это может привести к незначительным различиям в точности в зависимости от вашего приложения, но в большинстве случаев оба этих решения должны быть достаточными.
В соответствии с приведенным выше примером кода вы захотите отформатировать эту информацию после получения отметки времени Unix. Неформатированная временная метка Unix выглядит так:
Unix Отметка времени: 1232659628
Итак, чтобы получить что-то, что будет работать, вы можете использовать функцию date() для ее форматирования.
Хорошая ссылка на способы использования функции date() находится в страницах PHP Manual, здесь...
В качестве примера следующий код возвращает дату, которая выглядит так:
01/22/2009 04:35:00 pm
echo date("m/d/Y h:i:s a", time());
$_SERVER['REQUEST_TIME']
?
$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().
$date = date('m/d/Y h:i:s a', time());
работает, но как узнать, есть ли это EST, PST?
echo date("d-m-Y H:i:sa");
Этот код получит дату и время сервера, на котором выполняется код.
его очень простая
echo $date = date ('Y-m-d H: i: s');
Вы также можете использовать этот формат
$date = date("d-m-Y");
или
$date = date("Y-m-d H:i:s");
В соответствии со статьей Как получить текущее время дня (СЕЙЧАС) с PHP существует два распространенных способа получить текущую дату. Чтобы получить текущее datetime (сейчас) с помощью PHP, вы можете использовать класс date
с любой версией PHP или лучше класс datetime
с PHP >= 5.2.
Здесь доступны различные выражения формата даты.
Это выражение вернет СЕЙЧАС в формате Y-m-d H:i:s
.
<?php
echo date('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');
?>
<?php
echo "<b>".date('l\, F jS\, Y ')."</b>";
?>
Печатает как это
Воскресенье, 9 декабря 2012 г.
<?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(format,timestamp)
Функция Date возвращает строку, форматированную в соответствии с заданной строкой формата, используя заданную метку времени или текущее время, если не указана метка времени. Другими словами, временная метка является необязательной и по умолчанию используется значение time().
И параметры -
format - обязательно. Задает формат метки времени
timestamp - (Необязательно) Указывает метку времени. По умолчанию текущая дата и время
Требуемый параметр формата функции date()
указывает, как форматировать date (or time)
.
Вот некоторые символы, которые обычно используются для дат:
Другие символы, такие как "/", ".", 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");
?>
date_default_timezone_set('Europe/Warsaw');
echo("<p class='time'>".date('H:i:s')."</p>");
echo("<p class='date'>".date('d/m/Y')."</p>");
Установите часовой пояс:
date_default_timezone_set('Asia/Calcutta');
Затем вызовите функции даты
$date = date('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");
Вы можете использовать этот код.
<?php
$currentDateTime = date('Y-m-d H:i:s');
echo $currentDateTime;
?>
Формат даты также зависит:
echo date("d/m/Y H:i:sa"); // 13/04/2017 19:38:15pm
Я обнаружил, что самый простой способ получить текущее время в 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');
Еще один простой способ взять временную метку текущей даты и времени, используя функцию mktime()
$now = mktime(); //return timestamp of 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
// 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 как 12-3-2016 отдельно каждый день, месяц и год, затем скопируйте этот код
$day=date("d");
$month=date("m");
$year=date("y");
print "date".$day."-".$month."-".$year;
Это может помочь вам.
Вот несколько символов, которые обычно используются для времени:
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");
?>
Вот некоторые символы, которые обычно используются для дат:
.
в date("Y/m/d") . ;
?
Если вы Бангладеш. И если вы хотите получить время в Дакке, тогда используйте его
$date = new DateTime();
$date->setTimeZone(new DateTimeZone("Asia/Dhaka"));
$get_datetime = $date->format('d.m.Y 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);
?>
$date = date('m/d/Y h:i:s a', time());