-1

検索しましたが、試行錯誤が多すぎましたが、うまくいきませんでした。

NOW()挿入されたMysqlエントリからの日付と現在の日付から何秒経過したかを調べたいdate("Y.m.d H:i:s").Hereが私のphp関数です(@stackoverflowを投稿したユーザーから取得)。

function multipost(){
global $dbh;
$ip= $_SERVER['REMOTE_ADDR']; 

$sql = "select * from  table where ip='$ipa' order by date_time desc limit 1";

foreach ($dbh->query($sql) as $row) {
    $timeFirst=$row['date_time'];
    $timeSecond=date("Y.m.d H:i:s");
    $differenceInSeconds = $timeSecond-$timeFirst;
    echo $differenceInSeconds;
}

私も試してみstrtotime($row['date_time'];)ましたが、運がありません。何か助けはありますか?前もって感謝します。

4

3 に答える 3

1
function secDifference($date,$time){
    $dateVals = explode("-",$date);
    $timeUnix = 0;
    if($time == 0){
        $timeUnix = date("U",mktime(0,0,0,$dateVals[1],$dateVals[2],$dateVals[0]));
    }
    else{
        $tempVals = explode(" ",$dateVals[2]);
        $dateVals[2] = $tempVals[0];
        $timeVals = explode(":",$tempVals[1]);
        $timeUnix = date("U",mktime($timeVals[0],$timeVals[1],$timeVals[2],$dateVals[1],$dateVals[2],$dateVals[0]));
    }
    return (date("U")-$timeUnix);
}

この関数をコピーします。DATE と NOW の差を取得するには:

secDifference("12/03/1993");

DATE TIME と NOW の差を取得するには:

secDifference("12/03/1993 14:54:32",1);

それが役に立てば幸い。

于 2012-11-02T14:58:13.807 に答える
1

mysql に値を返してもらうことができます。

select *, TIMESTAMPDIFF(SECOND, NOW(), date_time) AS time_diff from  table where ip='$ipa' order by date_time desc limit 1
于 2012-11-02T15:05:18.267 に答える
0

秒単位の時間差だけを知りたい場合は、MySQLTIMESTAMPDIFF()を使用できます。クエリ文字列は次のようになります。

$sql = "SELECT *, TIMESTAMPDIFF(SECOND, date_time, NOW()) AS time_diff FROM table WHERE ip='$ipa' ORDER BY date_time DESC LIMIT 1";

の戻り値はTIMESTAMPDIFF「time_diff」として保存されることに注意してください。結果には、列として「time_diff」が追加されます。

詳細なドキュメントについては、このページを参照してください。

于 2012-11-02T15:02:12.717 に答える