хранение времени в PHP - PullRequest
1 голос
/ 17 мая 2011

данные хранятся в table1 с отметкой времени. Синтаксис, используемый для хранения метки времени: NOW(). сохраненный формат времени в 2011-05-17 00:46:19. у меня вопрос, как мне получить доступ к последним данным по времени и как отображать время, скажем, «данные хранятся 10 минут назад» или 5 секунд назад или 1 день и т. д. Я использую MySQL и PHP.

Ответы [ 4 ]

3 голосов
/ 17 мая 2011
SELECT * FROM table1 
WHERE table1.TimePosted BETWEEN NOW() AND DATE_SUB(NOW(),INTERVAL 10 MIN);

Ссылка: http://dev.mysql.com/doc/refman/5.5/en/date-and-time-functions.html#function_date-add

0 голосов
/ 17 мая 2011

это то, что я делал в своем коде раньше, может быть полезным

$sql  ="select datetimecol from table1 where x=y, etc";

$result = mysql_query($sql);
// TODO check for mysql errors

list($datetimecol) = mysql_fetch_row($result);

$timestamp = strtotime($datetimecol);

$diff = time() - $timestamp; 

if ($diff < 600) {
    // less then 10 minutes
    return 'Hot off the press';
} else if ($diff < 3600) {
    // less then 1 hour
    return sprintf('%d minutes ago', ($diff / 60));
} else if ($diff < 7200) {
    // less then 2 hours
    return '1 hour ago';        
} else if ($diff < 43200) {
    // less then 12 hours
    return sprintf('%d hours ago', ($diff / 3600));
} else if ($diff < 86400) {
    // less then 24 hours and on same day
    if (date('j') == date('j', $timestamp)) {
        return 'Today';
    } else {
        return 'Yesterday';
    }       
} else if ($diff < 172800) {
    // less then 48 hours and on next day
    if (date('i') == date('j', $timestamp + (60 * 60 * 24))) {
        return 'Yesterday';
    } else {
        return date('l', $timestamp);
    }
} else if ($diff < 604800) {
    return date('l', $timestamp);       
} else {
    return date('r', $timestamp);
}
0 голосов
/ 17 мая 2011
SELECT * FROM table1 WHERE table1.TimePosted >= NOW() - INTERVAL 10 MIN
0 голосов
/ 17 мая 2011

Когда вы получите результат от mysql_result(), используйте следующее:

$t = strtotime($value_from_db); // now you have a Unix epoch time.
$minutediff = (mktime()-$t)/60; // $minutediff minutes ago.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...