Запись php Time () в MySQL с помощью - PullRequest
0 голосов
/ 27 августа 2010

Я хочу зарегистрировать время, когда пользователь отправил сообщение, и отобразить его в Twitter как в моде.

Я нашел функцию, которая делает это, но она не работает с типом отметки времени mysqls.

В инструкции сказано, что для вычисления используется формат time ().Как мне записывать время в мою базу данных, чтобы она работала ???

Это код:

function newTime($tm,$rcs = 0) {
    // http://snipplr.com/view/17338/
    $cur_tm = time(); $dif = $cur_tm-$tm;
    $pds = array('second','minute','hour','day','week','month','year','decade');
    $lngh = array(1,60,3600,86400,604800,2630880,31570560,315705600);
    for($v = sizeof($lngh)-1; ($v >= 0)&&(($no = $dif/$lngh[$v])<=1); $v--); if($v < 0) $v = 0; $_tm = $cur_tm-($dif%$lngh[$v]);
    $no = floor($no); if($no <> 1) $pds[$v] .='s'; $x=sprintf("%d %s ",$no,$pds[$v]);
    if(($rcs == 1)&&($v >= 1)&&(($cur_tm-$_tm) > 0)) $x .= time_ago($_tm);
    return $x."ago";
}

Ответы [ 4 ]

1 голос
/ 27 августа 2010

Если вы просто хотите сохранить фактическую метку времени в базе данных, вы можете просто использовать функцию mysql NOW () для этого:

INSERT INTO tablename SET timefieldname = NOW():

Вы можете затем прочитать эту метку времени из базы данных и использовать функциюпреобразовать разницу во что-то вроде «30 минут назад».

1 голос
/ 27 августа 2010

Я отказываюсь пытаться разобраться в этом кровавом беспорядке :) Все еще громко смеюсь.

Однако, если вы хотите импортировать временные метки в поле MySQL DATETIME, которое ядумаю, что вы хотите - вы можете использовать FROM_UNIXTIME():

INSERT INTO tablename (fieldname) VALUES (FROM_UNIXTIME('1234567890'));
0 голосов
/ 27 августа 2010

Или, если вы хотите, чтобы MySQL (вместо вашего кода) вызывал функцию C-библиотеки (time_t) time (), взгляните на функцию MySQL UNIX_TIMESTAMP () как способ дать FROM_UNIXTIME () свой аргумент.

Возвращаемое значение UNIX_TIMESTAMP () идеально вписывается в поле INTEGER (10).

0 голосов
/ 27 августа 2010

РАЗРЕШЕНО ЭТО:

DID

$ posttime = time ();

INSERT INTO tablename (fieldname) VALUES ($ posttime));

...