Mysql
 sql >> база данни >  >> RDS >> Mysql

Дата в URL адрес дд/мм/гггг

Когато използвате strotime() трябва да се уверите, че използвате валиден формат за дата и час . В противен случай strtotime() ще върне false или ви дава неочаквана стойност.

Приема се, че датите, които използват формат XX/XX/XXXX, са в американски формат, което означава, че първите две цифри представляват месеца, следващите две цифри представляват деня от месеца, а последните четири цифри представляват годината. Когато се използват тирета, се приема, че датите са в европейски формат. Например:

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

Ако случайно смените деня и месеца strtotime() ще върне false, тъй като датата е невалидна.

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

Горните примери са направо. Но можете да срещнете проблеми, когато датите могат да бъдат двусмислени. Например:

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

В горните примери чрез превключване на ден и месец ние все още получаваме валидни дати, което може да доведе до неочаквани резултати във вашето приложение. За да разрешите тези потенциални проблеми, се препоръчва да използвате DateTime::createFromFormat() за да анализирате рекламата с дата, върнете DateTime() обект, от който можете да получите Unix Timestamp , конвертирайте датата в друг формат , или го използвайте за сравнение с други 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');

Вижте също:

За вашия конкретен случай следният код ще работи:

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



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. Защо резултатите от SQL заявка не се връщат в реда, в който очаквам?

  2. Как да управлявате бази данни с phpMyAdmin

  3. Как мога да направя три присъединявания към таблицата в заявка UPDATE?

  4. Как да използвате STRCMP() за сравняване на 2 низа в MySQL

  5. Урок за MySQL – Управление на регистрационни файлове на MySQL сървър:завъртане, компресиране, запазване и изтриване