Как нарезать дату, чтобы я мог сравнить только с месяцем и днем?

У меня проблема с датой. У меня есть дата рождения, например. 1993-06-01 в базе данных. А теперь я хочу сравнить с текущей датой, поэтому я могу высветить сообщение о дне рождения. Как это можно сравнить только с полем месяца и дня. Особенно в запросе, поэтому я могу прикрепить их имя с сообщением о дне рождения. Используемые рамки Pyrocms.

2 ответа

Решение

Для PHP просто используйте DateTime.

Пример:

$date1 = new DateTime('1993-06-01');
$date2 = new DateTime();
if ($date1->format('m-d') === $date2->format('m-d')) {
  // send the birthday message
}

Если вы хотите сделать это в SQL, используйте MONTH() а также DAY(),

Пример:

$sql = "SELECT * FROM `table` WHERE MONTH(`date_column`) = " . $date->format('n') . " AND DAY(`date_column`) = " . $date->format('j');

Если вам нужно сравнить с месяцем, у вас есть эта функция в MySQL:

MONTH(date)

Это возвращает месяц (в числах 1 .. 12)

У вас также есть

MONTHNAME(date)

который возвращает месяц в строке ("январь", "февраль", ...)

За день у вас есть:

DAYNAME(date) --> returns ('Sunday','Monday' ...)
DAYOFWEEK(date)  --> returns  (1 = Sunday, 2 = Monday, …, 7 = Saturday)

Вы можете посмотреть все функции даты и времени в этой ссылке MySql dev

Другие вопросы по тегам