Получить формат даты, например «Ymd H: i: s», с даты php

кто-то знает способ получить строку с даты, которая содержит формат даты?

<?php $date = date ("2009-10-16 21:30:45"); // smething like this? print date_format ($date); ?> 

Я спрашиваю об этом, потому что я хотел бы оптимизировать эту функцию, которую я написал, обычную, чтобы получить дату с другим часовым поясом от сервера, не делая особых действий

 <?php function get_timezone_offset ($timezone, $date = null, $format = null, $offset_timezone = null) { if ($date == null) $date = date ($format); if ($offset_timezone == null) $offset_timezone = date_default_timezone_get (); if ($format == null) $format = "Ymd H:i:s"; // I'd like to find a way that can avoid me to write $format and get it directly from the date i pass, but I don't know a particular method can do it // if ($format == null) $format = date_format ($date); $date_time = new DateTime ($date, new DateTimeZone ($offset_timezone)); $date_time->setTimeZone (new DateTimeZone ($timezone)); return $date_time->format ($format); } print get_timezone_offset ("Europe/Rome"); print get_timezone_offset ("Europe/Rome", date ("Ymd H:i:s")); print get_timezone_offset ("Europe/Rome", date ("Ymd H:i:s"), "Ymd H:i:s"); print get_timezone_offset ("Europe/Rome", "2009-10-16 21:30:45", "Ymd H:i:s", "America/New_York"); ?> 

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

Related of "Получить формат даты, например «Ymd H: i: s», с даты php"

Насколько мне известно, нет гарантированного способа работать в обратном направлении. Лучшим способом может быть попытка сопоставить регулярные выражения с ожидаемыми широко известными форматами (например, \d{2,4}[-/]\d{2}[-/]\d{2} для "Ymd"), но Я не могу придумать простой способ выполнить сопоставление без использования регулярных выражений. Вам также необходимо будет проверить, имеет ли смысл разборный формат, и вы не можете многое сделать в отношении двусмысленных дат, таких как 2 марта 2009 года, которые могут быть представлены как 09/03/02 , 2009-03-02 , 09/03/02 02/03/09 , 03/02/09 или даже 09/02/03 .

Вы можете преобразовать строку date в timestamp с strtotime и делать с меткой времени, что вы хотите. 😉

 <?php $date = "2009-10-16 21:30:45"; $ts = strtotime($date); echo date('Ym-d', $ts); ?> 

Функция PHP date () форматирует временную метку для более читаемой даты и времени. Попробуйте этот код для вас,

  <?php $date=date_create('2014-10-20'); date_time_set($date,12,20,55); echo date_format($date,'Ymd H:i:s'); ?> 

Я знаю, что поздно, но лучше бы это сделать:

 $date = date("Ymd");