Сортировка по запросу базы данных для всех строк, созданных в тот же день Unix Timestamp в PHP - PullRequest
1 голос
/ 26 октября 2010

Я занимаюсь разработкой PHP-приложения, которое будет обрабатывать множество статей компании.

Сейчас я создаю страницу, которая должна упорядочивать статьи ПО ДАТЕ, т.е. все статьи, созданные в определенный день, отображаются с соответствующим заголовком и т. Д. Для всех статей.

Я использовал метки времени Unix для сохранения дат в базе данных MySql, но не могу найти код, который сортирует даты только по дням. Могу ли я получить некоторую помощь.

Thanx

Ответы [ 3 ]

1 голос
/ 26 октября 2010

Вы можете упорядочить по столбцу отметки времени, но если вы хотите получить строковое представление дня, к которому относится запись, вы можете получить любую часть даты с помощью функции FROM_UNIXTIME(timestamp, 'format').

select FROM_UNIXTIME(timestampColumn, '%Y %m %d')

Значения формата во втором параметре можно регулировать на основе таблицы здесь: http://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_date-format

1 голос
/ 26 октября 2010

Можете ли вы сделать

SELECT DATE(FROM_UNIXTIME(my_field_name)) FROM table_x ORDER BY my_field_name
1 голос
/ 26 октября 2010

Вы можете использовать mktime (), чтобы получить метки времени, которые вы хотели бы использовать для хранения записей:

http://us.php.net/manual/en/function.mktime.php

$timestamp_for_my_birthday = mktime(0,0,0,10,16,1984);
$timestamp_for_the_next_day = mktime(0,0,0,10,17,1984);

if($time > $timestamp_for_my_birthday && $time < $timestamp_for_the_next_day){
    // Time is on my birthday
}

Чтобы превратить это в запрос MySQL:

$SQL = "SELECT * FROM dates WHERE date > $timestamp_for_my_birthday AND date < $timestamp_for_the_next_day;";

Для заказа по дате, я думаю, что это будет что-то вроде:

ВЫБРАТЬ * ИЗ ДАТЫ ЗАКАЗАТЬ ПО FROM_UNIXTIME (время, «% M% d% Y»);

...