php - formato - Convertir cadena a la fecha(europeo a americano)
strtotime to date (3)
Intenta reemplazar el /
con un -
así que:
$date = "02/04-2016";
$dateNew = str_replace("/","-",$date);
Esta pregunta ya tiene una respuesta aquí:
- Convierta un formato de fecha en otro en PHP 12 respuestas
Tengo una cadena en el formulario: "dd / mm-aaaa", donde dd es el día del mes con dos dígitos, mm es el mes representado con dos dígitos, y aaaa es el año con cuatro dígitos.
Necesito almacenar esto en mi base de datos. He intentado
$dato = date(''d/m-Y'' ,strtotime($_POST[''dag''] )
Pero eso claramente no funciona. En mi base de datos, la fecha se muestra como aaaa-mm-dd. ¿Cómo convierto correctamente la cadena al formato correcto?
Puede usar DateTime::createFromFormat
:
$time = ''12/3-1987'';
$data = DateTime::createFromFormat(''d/m-Y'', $time);
echo $data->format(''Y-m-d''); //1987-03-12
strtotime no acepta el formato de cadena de tiempo, por lo que devuelve falso. Puede usar DateTime::createFromFormat
o date_create_from_format
, manual aquí .
DateTime::createFromFormat(''d/m-Y'', $_POST[''dag'']);
revisa la demostración en vivo
<?php
var_dump(DateTime::createFromFormat(''d/m-Y'', ''11/01-2017''));
put poner:
object(DateTime)#1 (3) {
["date"]=>
string(26) "2017-01-11 14:34:53.000000"
["timezone_type"]=>
int(3)
["timezone"]=>
string(3) "UTC"
}