簡體   English   中英

使用PHP和MySQL獲取和存儲時間戳差異

[英]Getting and Storing a timestamp difference using PHP and MySQL

我正在為最終項目創建基本游戲; 整個站點已構建並可以使用,但是我無法使用一項功能。

功能是隨着時間的流逝,用戶的寵物統計信息將降低。

您與寵物的距離越長,他們的統計數據就會越低,直到它們“死亡”。 到目前為止,我正在嘗試使用以下代碼來計算兩次登錄之間的時間差:

$mod = mysqli_query($con,"select * from users where user_name='$user_name'");
while($row = mysqli_fetch_array($mod)){
    $last_login = $row['last_login'];
    $stored_login = $row['stored_login'];
    $time_diff = ($last_login-$stored_login);
    echo $time_diff;
    $time_mod = mysqli_query($con,"update users set time_mod='$time_diff' where user_name='$user_name'");                      
}

last_loginstored_login都是TIMESTAMP變量,我被告知我應該能夠輕松地減去它們以獲得解決方案。

但是,當我回顯該方程式時,它返回的都是0 我嘗試使用DATEDIFF但是MySQL給我一個錯誤,說我不能使用它。 我只需要經過多少天-有什么辦法可以做到這一點?

如果有幫助,您可以在此處訪問測試版(創建帳戶或登錄):

http://www.eurogabby.com/MyPetMonster/login.php

username: a 
password: a

您只需要像這樣使用strtotime轉換時間

$time_diff = (strtotime($last_login)-strtotime($stored_login));
echo $time_diff;

如果這不起作用,那么首先將它們轉換為strtotime並存儲在不同的變量中,然后像這樣減去它們

$last = strtotime($last_login);
$stored = strtotime($stored_login);
$time_diff = ($last-$stored);
echo $time_diff;

現在您可以像這樣使用日期函數轉換回時間

$newtime = date("m/d/Y",$time_diff);
echo $newtime = month/day/year

請記住,m / d / y是您要轉換的日期格式選擇。

也許您可以嘗試。 將行轉換為時間。

$last_login = strtotime($row['last_login']);
$stored_login = strtotime($row['stored_login']);
$time_diff = ($last_login - $stored_login);
echo $time_diff;

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM