Как получить время сейчас php

How to get current date/time as a date object in PHP

How do you get today’s date, as a date object? I’m trying to compute the difference between some start date and today. The following will not work, because getdate() returns an array and not a date object:

$today = getdate(); $start = date_create('06/20/2012'); $diff = date_diff($start, $today); echo($today . '
' . $start . '
' . $diff);

Array ( [seconds] => 8 [minutes] => 1 [hours] => 16 [mday] => 11 [wday] => 1 [mon] => 6 [year] => 2012 [yday] => 162 [weekday] => Monday [month] => June [0] => 1339455668 ) DateTime Object ( [date] => 2012-06-20 00:00:00 [timezone_type] => 3 [timezone] => America/Los_Angeles )

3 Answers 3

$today = new DateTime('now'); $newYear = new DateTime('2012-01-01'); if ($today > $newYear)

Op’s edit I just needed to call date_default_timezone_set, and then this code worked for me.

I think the explicit $today = new DateTime(«now»); is more clear, even if the argument does default to «now».

The code $today = new DateTime(‘now’); is actually throwing an error of some kind. (500 internal server error)

As of PHP 5.3.0, you can use the diff method that is part of the DateTime object. $difference = $today->diff($start); . This returns a DateInterval object and you can output the results several ways. php.net/manual/en/class.dateinterval.php

To get difference in days use this:

the time in this object eill be 00:00:00

If you want difference with hours minutes and seconds use this:

I ended up using the date_create constructor (no parameter) to get the current date.

$diff = date_diff(date_create('06/20/2012'), date_create()); print_r($diff); 

DateInterval Object ( [y] => 0 [m] => 0 [d] => 8 [h] => 6 [i] => 30 [s] => 40 [invert] => 1 [days] => 8 )

I have no idea why, but Mike B’s answer (and any constructor I tried for DateTime) threw an error for me in PHP5 / IIS.

Glad you found a solution. If you’re curious to know why DateTime failed to instantiate you can try to turn up error reporting. 500 error is IIS’s way of telling you that PHP barfed but it doesn’t get much more specific. You can crank up the error reporting by placing these functions at the beginning of your script: error_reporting(-1); ini_set(‘display_errors’, 1); ini_set(‘display_startup_errors’, 1); . IIS’s error log might also contain specific error messages.

Читайте также:  Javascript setting window size

@MikeB thanks. This was the error: It is not safe to rely on the system’s timezone settings. You are required to use the date.timezone setting or the date_default_timezone_set() function. Once I call date_default_timezone_set, your answer works.

Источник

time

Returns the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).

Note:

Unix timestamps do not contain any information with regards to any local timezone. It is recommended to use the DateTimeImmutable class for handling date and time information in order to avoid the pitfalls that come with just Unix timestamps.

Parameters

This function has no parameters.

Return Values

Returns the current timestamp.

Examples

Example #1 time() example

The above example will output something similar to:

Notes

Timestamp of the start of the request is available in $_SERVER[‘REQUEST_TIME’] .

See Also

  • DateTimeImmutable
  • date() — Format a Unix timestamp
  • microtime() — Return current Unix timestamp with microseconds

User Contributed Notes 1 note

time() gives the timestamp of Greenwich Mean Time (GMT) which is defined as the official time for the whole earth. You get the local time by adding the time zone offset to this timestamp.

  • Date/Time Functions
    • checkdate
    • date_​add
    • date_​create_​from_​format
    • date_​create_​immutable_​from_​format
    • date_​create_​immutable
    • date_​create
    • date_​date_​set
    • date_​default_​timezone_​get
    • date_​default_​timezone_​set
    • date_​diff
    • date_​format
    • date_​get_​last_​errors
    • date_​interval_​create_​from_​date_​string
    • date_​interval_​format
    • date_​isodate_​set
    • date_​modify
    • date_​offset_​get
    • date_​parse_​from_​format
    • date_​parse
    • date_​sub
    • date_​sun_​info
    • date_​sunrise
    • date_​sunset
    • date_​time_​set
    • date_​timestamp_​get
    • date_​timestamp_​set
    • date_​timezone_​get
    • date_​timezone_​set
    • date
    • getdate
    • gettimeofday
    • gmdate
    • gmmktime
    • gmstrftime
    • idate
    • localtime
    • microtime
    • mktime
    • strftime
    • strptime
    • strtotime
    • time
    • timezone_​abbreviations_​list
    • timezone_​identifiers_​list
    • timezone_​location_​get
    • timezone_​name_​from_​abbr
    • timezone_​name_​get
    • timezone_​offset_​get
    • timezone_​open
    • timezone_​transitions_​get
    • timezone_​version_​get

    Источник

    date

    Возвращает строку, отформатированную в соответствии с указанным в параметре format шаблоном. Используется метка времени, заданная параметром timestamp (метка времени Unix), или текущее системное время, если параметр timestamp не задан. Таким образом, параметр timestamp является необязательным и по умолчанию равен значению, возвращаемому функцией time() .

    Метки времени Unix не обрабатывают часовые пояса. Используйте класс DateTimeImmutable и его метод форматирования DateTimeInterface::format() для форматирования информации о дате/времени с привязкой к часовому поясу.

    Список параметров

    Замечание: Функция date() всегда будет генерировать 000000 в качестве микросекунд, поскольку она принимает параметр int , тогда как DateTime::format() поддерживает микросекунды, если DateTime был создан с микросекундами.

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

    Возвращаемые значения

    Возвращает отформатированную строку с датой.

    Ошибки

    Каждый вызов к функциям даты/времени при неправильных настройках часового пояса сгенерирует ошибку уровня E_WARNING , если часовой пояс некорректный. Смотрите также date_default_timezone_set()

    Список изменений

    Версия Описание
    8.0.0 timestamp теперь допускает значение null.

    Примеры

    Пример #1 Примеры использования функции date()

    // установка часового пояса по умолчанию.
    date_default_timezone_set ( ‘UTC’ );

    // выведет примерно следующее: Monday
    echo date ( «l» );

    // выведет примерно следующее: Monday 8th of August 2005 03:12:46 PM
    echo date ( ‘l jS \of F Y h:i:s A’ );

    // выведет: July 1, 2000 is on a Saturday
    echo «July 1, 2000 is on a » . date ( «l» , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));

    /* пример использования константы в качестве форматирующего параметра */
    // выведет примерно следующее: Mon, 15 Aug 2005 15:12:46 UTC
    echo date ( DATE_RFC822 );

    // выведет примерно следующее: 2000-07-01T00:00:00+00:00
    echo date ( DATE_ATOM , mktime ( 0 , 0 , 0 , 7 , 1 , 2000 ));
    ?>

    Чтобы запретить распознавание символа как форматирующего, следует экранировать его с помощью обратного слеша. Если экранированный символ также является форматирующей последовательностью, то следует экранировать его повторно.

    Пример #2 Экранирование символов в функции date()

    Для вывода прошедших и будущих дат удобно использовать функции date() и mktime() .

    Пример #3 Пример совместного использования функций date() и mktime()

    $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() . Важно отметить, что следует экранировать все символы, которые необходимо оставить без изменений. Это справедливо и для тех символов, которые в текущей версии PHP не распознаются как форматирующие, поскольку это может быть введено в следующих версиях. Для экранировании управляющих последовательностей (например, \n) следует использовать одинарные кавычки.

    Пример #4 Форматирование с использованием date()

    // Предположим, что текущей датой является 10 марта 2001, 5:16:18 вечера,
    // и мы находимся в часовом поясе Mountain Standard Time (MST)

    $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 (формат MySQL DATETIME)
    ?>

    Для форматирования дат на других языках вместо функции date() можно использовать метод IntlDateFormatter::format() .

    Примечания

    Замечание:

    Для получения метки времени из строкового представления даты можно воспользоваться функцией strtotime() . Кроме того, некоторые базы данных имеют собственные функции для преобразования внутреннего представления даты в метку времени (например, функция MySQL » UNIX_TIMESTAMP).

    Временную метку начала запроса можно получить из поля $_SERVER[‘REQUEST_TIME’] .

    Смотрите также

    • DateTimeImmutable::__construct() — Возвращает новый объект DateTimeImmutable
    • DateTimeInterface::format() — Возвращает дату, отформатированную согласно переданному формату
    • gmdate() — Форматирует дату/время по Гринвичу
    • idate() — Преобразует локальное время/дату в целое число
    • getdate() — Возвращает информацию о дате/времени
    • getlastmod() — Получает время последней модификации страницы
    • mktime() — Возвращает метку времени Unix для заданной даты
    • IntlDateFormatter::format() — Форматирует значение даты/времени в виде строки
    • time() — Возвращает текущую метку системного времени Unix
    • Предопределённые константы даты и времени

    User Contributed Notes

    • Функции даты и времени
      • checkdate
      • date_​add
      • date_​create_​from_​format
      • date_​create_​immutable_​from_​format
      • date_​create_​immutable
      • date_​create
      • date_​date_​set
      • date_​default_​timezone_​get
      • date_​default_​timezone_​set
      • date_​diff
      • date_​format
      • date_​get_​last_​errors
      • date_​interval_​create_​from_​date_​string
      • date_​interval_​format
      • date_​isodate_​set
      • date_​modify
      • date_​offset_​get
      • date_​parse_​from_​format
      • date_​parse
      • date_​sub
      • date_​sun_​info
      • date_​sunrise
      • date_​sunset
      • date_​time_​set
      • date_​timestamp_​get
      • date_​timestamp_​set
      • date_​timezone_​get
      • date_​timezone_​set
      • date
      • getdate
      • gettimeofday
      • gmdate
      • gmmktime
      • gmstrftime
      • idate
      • localtime
      • microtime
      • mktime
      • strftime
      • strptime
      • strtotime
      • time
      • timezone_​abbreviations_​list
      • timezone_​identifiers_​list
      • timezone_​location_​get
      • timezone_​name_​from_​abbr
      • timezone_​name_​get
      • timezone_​offset_​get
      • timezone_​open
      • timezone_​transitions_​get
      • timezone_​version_​get

      Источник

Оцените статью