obtener formato fecha espaƱol date_format cambiar actual php mysql

formato - string to date php



Formato de fecha PHP() cuando se inserta en datetime en MySQL (10)

Aquí hay una solución alternativa: si tiene la fecha en PHP como marca de tiempo, omita el manejo con PHP y deje que el DB se encargue de transformarla utilizando la función FROM_UNIXTIME .

mysql> insert into a_table values(FROM_UNIXTIME(1231634282)); Query OK, 1 row affected (0.00 sec) mysql> select * from a_table; +---------------------+ | a_date | +---------------------+ | 2009-01-10 18:38:02 | +---------------------+

¿Cuál es el formato correcto para pasar a la función date() en PHP si quiero insertar el resultado en una columna de tipo datetime MySQL?

He estado intentando la date("YMD G:i:s") pero eso solo inserta "0000-00-00 00:00:00" cada vez.


De los comentarios de la página de manual de php''s date() :

<?php $mysqltime = date ("Y-m-d H:i:s", $phptime); ?>

Tuvo la ''Y'' correcta: es un año completo, pero ''M'' es un mes de tres caracteres, mientras que ''m'' es un mes de dos dígitos. Mismo problema con ''D'' en lugar de ''d''. ''G'' es una hora de 1 o 2 dígitos, donde ''H'' siempre tiene un 0 inicial cuando es necesario.


El problema es que está usando ''M'' y ''D'' , que son representaciones textuales. MySQL espera una representación numérica del formato 2010-02-06 19:30:13

Try: date("Ymd H:i:s") que usa los equivalentes numéricos.

edición: cambió de G a H , aunque puede que no tenga impacto, es probable que desee utilizar el formato de 24 horas con 0s iniciales.


Esto me ha estado volviendo loco buscando una respuesta simple. Finalmente, hice esta función que parece capturar todas las entradas y proporcionar una buena cadena de SQL que sea correcta o al menos válida y verificable. Si es 1999-12-31 es probable que esté mal, pero no arrojará un error grave en MySQL.

function MakeSQLDate($date) { if (is_null($date)) { //use 1999-12-31 as a valid date or as an alert return date(''Y-m-d'', strtotime(''1999-12-31'')); } if (($t = strtotime($date)) === false) { //use 1999-12-31 as a valid date or as an alert return date(''Y-m-d'', strtotime(''1999-12-31'')); } else { return date(''Y-m-d H:i:s'', strtotime($date)); } }


Formato de fecha y hora de MySQL con PHP

$date = "''".date(''Y-m-d H:i:s'', strtotime(str_replace(''-'', ''/'', $_POST[''date''])))."''";


Formato de marca de tiempo a la columna DATETIME de MySQL:

strftime(''%Y-%m-%d %H:%M:%S'',$timestamp);


No es necesario utilizar el método date () de PHP si no usa una marca de tiempo. Si dateposted es una columna de fecha y hora, puede insertar la fecha actual de esta manera:

$db->query("INSERT INTO table (dateposted) VALUES (now())");


Utilizo el siguiente código PHP para crear una variable que inserto en una columna DATETIME de MySQL.

$datetime = date_create()->format(''Y-m-d H:i:s'');

Esto mantendrá la fecha y hora actuales del servidor.


Yo uso esta función (PHP 7)

function getDateForDatabase(string $date): string { $timestamp = strtotime($date); $date_formated = date(''Y-m-d H:i:s'', $timestamp); return $date_formated; }

Versiones anteriores de PHP (PHP <7)

function getDateForDatabase($date) { $timestamp = strtotime($date); $date_formated = date(''Y-m-d H:i:s'', $timestamp); return $date_formated; }


$date_old = ''23-5-2016 23:15:23''; //Date for database $date_for_database = date ("Y-m-d H:i:s", strtotime($date_old)); //Format should be like ''Y-m-d H:i:s''`enter code here`