簡體   English   中英

php mysql 經過時間計算

[英]php mysql time elapsed calculation

我有一個應用程序 [iphone],它有時會 [使用 json] 發送到服務器,所以時間看起來像 hh:mm 24 小時格式,時間作為 varchar 保存在數據庫中,

我需要計算經過的時間 = endTime - startTime

但我的問題是我在數據庫中有時間作為varchar,沒有時間戳,

  • 那么如何計算經過的時間,而不改變我的數據庫中字段的 varchar 類型?,我可以將這個 hh:mm 轉換為 int 嗎? 操作?,然后再次顯示為 hh:mm,可能保存在其他表中?

多謝!

那么如何計算經過的時間,而不改變我的數據庫中的 varchar 類型的字段?

你可以投射它,但你最好把它作為一個日期時間開始。

 cast(endtime as datetime) - cast(starttime as datetime) -- yields an interval

在 PHP 中:

$json_time = '13:10';
$json_format = 'H:i';

$date = DateTime::createFromFormat($json_format, $json_time);

$mysql_format = 'Y-m-d H:i:s';
echo "Format: $mysql_format; " . $date->format($mysql_format) . "\n";

echo $date->getTimestamp();

產量:

格式:Ymd H:i:s; 2011-06-08 13:10:00

1307495400

簡單的:

$start_time = '11:10';
$end_time = '18:55';

$start_time = explode(':', $start_time);
$end_time = explode(':', $end_time);

$elapsed_time = $end_time[0]*60+$end_time[1]-$start_time[0]*60-$start_time[1];
// in minutes.
$elapsed_hours = floor($elapsed_time/60);
$elapsed_minutes = $elapsed_time-$elapsed_hours*60;

print $elapsed_hours.':'.$elapsed_minutes;
// 7:45

暫無
暫無

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

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