obtener formato fecha español date_format actual php mysql date strtotime

formato - Fecha de PHP que muestra ''1970-01-01'' después de la conversión



strftime php (7)

Tengo una forma en la que el formato de fecha es dd/mm/yyyy . Para buscar en la base de datos, he convertido el formato de fecha a yyyy-mm-dd . Pero cuando lo echo , lo muestra 1970-01-01 . El código PHP está abajo:

$date1 = $_REQUEST[''date'']; echo date(''Y-m-d'', strtotime($date1));

¿Por qué está sucediendo? ¿Cómo puedo formatearlo a yyyy-mm-dd ?


El 1 de enero de 1970 es la llamada época de Unix. Es la fecha en la que comenzaron a contar la hora de Unix . Si obtiene esta fecha como un valor de retorno, generalmente significa que la conversión de su fecha a la marca de tiempo de Unix arrojó un resultado (casi) cero. Así que la conversión de fecha no tiene éxito. Lo más probable es que reciba una entrada incorrecta.

En otras palabras, su strtotime($date1) devuelve 0, lo que significa que $date1 se pasa en un formato no compatible para la función strtotime.


Finalmente he encontrado un código de una línea para resolver este problema.

date(''d/m/Y'', strtotime(str_replace(''.'', ''-'', $row[''DMT_DATE_DOCUMENT''])));


Otra solución:

Convierta el selector de fecha dd/mm/yyyy a yyyy-mm-dd

$startDate = trim($_POST[''startDate'']); $startDateArray = explode(''/'',$startDate); $mysqlStartDate = $startDateArray[2]."-".$startDateArray[1]."-".$startDateArray[0]; $startDate = $mysqlStartDate;


Reemplazar / con - :

$date1 = strtr($_REQUEST[''date''], ''/'', ''-''); echo date(''Y-m-d'', strtotime($date1));


Utilice el siguiente código para PHP 5.3+:

$date = new DateTime(''1900-02-15''); echo $date->format(''Y-m-d'');

Utilice el siguiente código para PHP 5.2:

$date = new DateTime(''1900-02-15''); echo $date->format(''Y-m-d'');


$date1 = $_REQUEST[''date'']; if($date1) { $date1 = date( ''Y-m-d'', strtotime($date1)); } else { $date1 = ''''; }

Esto se mostrará correctamente cuando haya una date() válida date() en $date y no se mostrará nada si no es así.
Resuelto el problema para mí.


$inputDate = ''07/05/-0001''; $dateStrVal = strtotime($inputDate); if(empty($dateStrVal)) { echo ''Given date is wrong''; } else{ echo ''Date is correct''; }

O / P: La fecha dada es incorrecta