it-swarm.com.ru

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

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

731
Mike

Время будет идти по времени вашего сервера. Простой обходной путь для этого - вручную установить часовой пояс с помощью 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());

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

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

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

435
Shadrack B. Orina

Поскольку PHP 5.2.0, вы можете сделать это, используя OOP и DateTime() (конечно, если вы предпочитаете OOP):

$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();
171
Mahdi

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

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

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)
81
ShapCyber

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

58
Gumbo

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

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

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

$date = date('Format String');
58
Rob Hruska

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

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

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

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

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

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

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

Функция 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)
43
Subodh Ghulaxe
 $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 ().

23
Kailas

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

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

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

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

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

16
Naeem Moavia Siddiqui

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

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

Или же

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

Согласно статье Как получить текущую дату и время (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
    $dt = new DateTime();
    echo $dt->format('Y-m-d H:i:s');
?>
13
David
<?php
echo "<b>".date('l\, F jS\, Y ')."</b>";
?>

Отпечатки как это 

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

12
AMB

это очень просто

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

12
Juned Ansari
<?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)
?>
11
Mr. HK
date_default_timezone_set('Europe/Warsaw');
echo("<p class='time'>".date('H:i:s')."</p>");
echo("<p class='date'>".date('d/m/Y')."</p>");
9
Dariusz J
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 () - Форматировать GMT/UTC дата/время
  • idate () - Форматировать местное время/дату как целое число
  • getdate () - Getdate/time информацию
  • getlastmod () - Получает время последней модификации страницы
  • mktime () - Получить Unix timestamp для даты
  • strftime () - Форматировать местное время/дату в соответствии с настройками локали
  • время () - возврат тока метка времени Unix
  • strtotime () - Разбор любого текстового описания даты и времени на английском языке в Unix timestamp
  • Предопределенные DateTime Константы
9
Joomler

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

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

Если вы хотите другой график, пожалуйста, используйте:

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

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

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

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

date_default_timezone_set('Asia/Calcutta');

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

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

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

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

7
adespotos

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

  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') - представляет день недели

Source-W3-Schools

5
Raheel Khan

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

$date = new DateTime();
$date->setTimeZone(new DateTimeZone("Asia/Dhaka"));
$get_datetime = $date->format('d.m.Y H:i:s');
5
A.A Noman
// 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));
5
Elyor

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

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

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

3
Gnanasekar S

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

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

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

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

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

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

3
Meena Arumugam

Лучший способ узнать текущее время и дату - использовать функцию date в 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');

Список другого часового пояса - here .

3
Arthi Rajgopal

Очень просто

date_default_timezone_set('Asia/Kolkata');
$date = date('m/d/Y H:i:s', time());
1
Kowsigan Atsayam
echo $today = date('y-m-d');

Это вернет сегодняшнюю дату.

0
Ajay Katariya

Часовой пояс сервера Linux и PHP разница часов () следующим образом:

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