У меня есть массив, где один из ключей - дата и время, а его формат значений выглядит так:
dec/10/2017 01:50:33
и моя проблема в том, что когда я вставляю в базу данных, значения меняются:
0000-00-00 00:00:00
Не могли бы вы помочь мне исправить это? как исправить это в php, спасибо
Использовать str_replace
и date
и strtotime
Легко и просто:
$date = 'dec/10/2017 01:50:33';
$formatedDate = str_replace('/', '-', $date);
echo date('Y-m-d H:i:s',strtotime($formatedDate));
Выход:
2017-12-10 01:50:33
Это довольно легко сделать, если вы просто переформатируете строку, чтобы функция PHP strtotime знала, что с ней делать:
<?php
// Original string
$str = "dec/10/2017 01:50:33";
// Split the date from the time
$parts = explode(' ', $str);
// Split up the date
$date_parts = explode( '/', $parts[0] );
// Reassemble so strtotime works with a recognized format
$time = strtotime( $date_parts[0] . ' ' . $date_parts[1] . ', ' . $date_parts[2] . ' ' . $parts[1] );
// Format date for MySQL
echo date('Y-m-d H:i:s', $time);
// 2017-12-10 01:50:33