Мой vuexy datepicker возвращает следующую строку:
Tue Dec 01 2020 21:30:00 GMT+0600 (Bangladesh Standard Time)
В моем контроллере (Laravel) я хочу преобразовать это в простой формат даты — yyyy-mm-dd
.
Я пробовал с strtotime()
и date()
, но ничего не работает. Возможно, потребуется использовать DateTime::createFromFormat()
, но я не смог выбрать синтаксис.
Как я могу преобразовать его в yyyy-mm-dd
?
Это работает для меня:
$date = 'Tue Dec 01 2020 21:30:00 GMT+0600 (Bangladesh Standard Time)';
$date = preg_replace('/\(.*\)$/', '', $date); # Get rid of TZ from the date string
echo date('Y-m-d', strtotime($date));
Вот еще один пример использования класса DateTime
$date = 'Tue Dec 01 2020 21:30:00 GMT+0600 (Bangladesh Standard Time)';
$date = preg_replace('/\(.*\)$/', '', $date);
$dt = new DateTime($date);
echo $dt->format('Y-m-d');
Оба выхода:
2020-12-01
Правда @MarcelBurkhard. Как всегда TMTOWTDI
Привет, друг, ты можешь использовать углеродный пакет, один из наиболее рекомендуемых пакетов. Пожалуйста, следуйте коду, как показано ниже
use Carbon; //use at the begining of class/controller
$date = 'Tue Dec 01 2020 21:30:00 GMT+0600 (Bangladesh Standard Time)';
$formated_date = Carbon::parse($date)->format('Y-m-d');
//output will be 2020-12-01
Длина даты перед
(
, вероятно, всегда одинакова, поэтому, возможно,substr($date, 0, 33);
тоже подойдет.