sql >> Databáze >  >> RDS >> Mysql

Datum v adrese URL dd/mm/rrrr

Při použití strotime() musíte se ujistit, že používáte platný formát data a času . Jinak strtotime() vrátí false nebo vám dá neočekávanou hodnotu.

Předpokládá se, že data, která používají formát XX/XX/XXXX, jsou v americkém formátu, což znamená, že první dvě číslice představují měsíc, další dvě číslice představují den v měsíci a poslední čtyři číslice představují rok. Při použití pomlček se předpokládá, že data jsou v evropském formátu. Například:

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

Pokud omylem přepnete den a měsíc strtotime() vrátí hodnotu false, protože datum je neplatné.

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

Výše uvedené příklady jsou přímočaré. Ale můžete narazit na problémy, když data mohou být nejednoznačná. Například:

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

Ve výše uvedených příkladech přepnutím dne a měsíce stále získáváme platná data, která mohou ve vaší aplikaci způsobit neočekávané výsledky. K vyřešení těchto potenciálních problémů se doporučuje použít DateTime::createFromFormat() pro analýzu data reklamy vraťte DateTime() objekt, ze kterého můžete získat unixové časové razítko , převeďte datum do jiného formátu , nebo jej použijte k porovnání s jinými DateTime objektů.

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

Viz také:

Pro váš konkrétní případ bude fungovat následující kód:

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



  1. Oprava Msg 8114 „Chyba při převodu datového typu varchar na číselný“ v SQL Server

  2. Existuje ekvivalent Oracle k SQL Serveru OUTPUT INSERTED.*?

  3. Síťová rozhraní SQL Server:Připojovací řetězec není platný [87]

  4. Jak Sinh() funguje v PostgreSQL