sql >> Database teknologi >  >> RDS >> Mysql

Dato i en URL dd/mm/åååå

Når du bruger strotime() du skal sikre dig, at du bruger et gyldigt datetime-format . Ellers strtotime() vil returnere false eller give dig en uventet værdi.

Datoer, der bruger formatet XX/XX/XXXX, antages at være i amerikansk format, hvilket betyder, at de to første cifre repræsenterer måneden, de næste to cifre repræsenterer dagen i måneden, og de sidste fire cifre repræsenterer året. Når der bruges bindestreger, antages datoerne at være i europæisk format. For eksempel:

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

Hvis du ved et uheld skifter dag og måned strtotime() vil returnere falsk, da datoen er ugyldig.

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

Ovenstående eksempler er ligetil. Men du kan løbe ind i problemer, når datoerne kan være tvetydige. For eksempel:

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

I ovenstående eksempler får vi stadig gyldige datoer ved at skifte dag og måned, som kan forårsage uventede resultater i din ansøgning. For at løse disse potentielle problemer anbefales det at bruge DateTime::createFromFormat() for at parse datoannoncen returnerer en DateTime() objekt, hvorfra du kan få et Unix-tidsstempel , konvertere datoen til et andet format , eller brug den til at sammenligne med andre DateTime genstande.

// 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');

Se også:

For dit specifikke tilfælde vil følgende kode virke:

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



  1. Sådan vender du rækkefølgen af ​​tegn i en streng i MySQL

  2. SSIS kan ikke gemme pakker og genstarter Visual Studio

  3. SQLite Hvor

  4. Fjern mærkelige tegn (A med hat) fra SQL Server varchar-kolonnen