Дата форматирования в 02 апреля в php и mysql - PullRequest
0 голосов
/ 05 апреля 2020
$sql="SELECT * 
      FROM events 
      WHERE sdate > CURDATE() 
      ORDER BY STR_TO_DATE (sdate,'%d %F %Y') 
      LIMIT 1";

1 Ответ

0 голосов
/ 05 апреля 2020

Вы будете рады написать код, используя для этого временные метки, позвольте мне привести пример:

SELECT UNIX_TIMESTAMP(CURDATE()) вернет что-то вроде 1586063538.

Это метка времени, которая с ним легко работать.

Тогда в вашем случае вам нужно будет выполнить двухэтапный код

Сначала при извлечении из базы данных вы должны использовать:

SELECT field1, field2, ..., fieldN, UNIX_TIMESTAMP(sdate) as epoch
  FROM events 
  WHERE sdate > CURDATE() 
  ORDER BY STR_TO_DATE (sdate,'%d %F %Y') 
  LIMIT 1;

, где field1, field2, ... - другие поля, которые вы хотите, и эпоха будет содержать эпоху для этой даты. Помните, что при кодировании именование полей всегда является хорошей практикой.

Затем, используя функцию PHP date(), вы можете проанализировать метку времени эпохи как Apr 02 , используя:

$timestamp = 1586063538;
$day_formatted = date("M d",$timestamp);
echo($day_formatted); //will be Apr 05 in this case 

Подробнее о функции date() в документации php здесь: https://www.php.net/manual/en/function.date.php

Если вы хотите копать глубже в эпоху unix отметки времени вы можете посмотреть здесь: https://en.wikipedia.org/wiki/Unix_time

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...