yyyy xsl with parse now php mysql date datetime

php - xsl - Fecha en una URL dd/mm/aaaa



xsl format date yyyy-mm-dd (1)

Al usar strotime() , debe asegurarse de estar utilizando un formato de fecha y hora válido . De strtotime() contrario, strtotime() devolverá false o le dará un valor inesperado.

Se supone que las fechas que usan el formato XX / XX / XXXX están en formato US, lo que significa que los primeros dos dígitos representan el mes, los dos dígitos siguientes representan el día del mes y los últimos cuatro representan el año. Cuando se usan guiones, se supone que las fechas están en formato europeo. Por ejemplo:

04/18/2017 = April 18, 2017 12/18/2017 = December 18, 2017 18-04-2017 = April 18, 2017 18-12-2017 = December 18, 2017

Si accidentalmente cambia el día y el mes, strtotime() devolverá falso ya que la fecha no es válida.

18/04/2017 // error 18/12/2017 // error 04-18-2018 // error 12-18-2017 // error

Los ejemplos anteriores son directos. Pero puede encontrarse con problemas cuando las fechas pueden ser ambiguas. Por ejemplo:

04/12/2017 = April 12, 2017 12/04/2017 = December 4, 2017 04-12-2017 = December 4, 2017 12-04-2017 = April 12, 2017

En los ejemplos anteriores al cambiar el día y el mes, seguimos obteniendo fechas válidas que pueden causar resultados inesperados en su aplicación. Para resolver estos posibles problemas, se recomienda utilizar DateTime::createFromFormat() para analizar la fecha y devolver un objeto DateTime() desde el que se puede obtener una marca de tiempo Unix , convertir la fecha en otro formato o usarla para compararla con otra Objetos DateTime

// Parse US date format $date1 = DateTime::createFromFormat(''m/d/Y'', ''04/18/2017''); // Get Unix timestamp of 1493581268 $timestamp = $date1->getTimestamp(); // Parse European date format $date2 = DateTime::createFromFormat(''d-m-Y'', ''''18-04-2017); // Get MySQL format (ISO-8601) of 2017-04-18 $mysqlDate = $date2->format(''Y-m-d'');

Ver también:

Para su caso específico, el siguiente código funcionará:

$date = $date1 = DateTime::createFromFormat(''m/d/Y'', ''20/02/2000''); $D->query = $date->format(''Y-m-d''); // 2000-02-20

Estoy pasando una fecha (dd / mm / aaaa) en URL con el siguiente formato:

http://www.website.com/_parameter=20/02/2000

Estoy usando el siguiente PHP para convertirlo al formato AAAA-MM-DD.

<?php $D->query = ''''; if ($this->param(''_parameter'')) $D->query = date(''Y-m-d'', strtotime($this->param(''_parameter''))); ?>

Y mi base de datos de la siguiente manera:

SELECT idtask FROM task WHERE unfinish=1 AND date LIKE ''%".$D->query."%'' "

Lo anterior devuelve lo siguiente:

1970-01-01