我无法绕开这个大脑,所以我希望有人可以提供帮助。我有一首歌曲,歌曲的长度以毫秒为单位。我还以DATETIME格式播放了歌曲的日期。我想做的是找出歌曲播放时间还剩下几毫秒。
例子
$tracktime = 219238;
$dateplayed = '2011-01-17 11:01:44';
$starttime = strtotime($dateplayed);
我正在使用以下方法确定剩余时间,但似乎不正确。
$curtime = time();
$timeleft = $starttime+round($tracktime/1000)-$curtime;
任何帮助将不胜感激。
最佳答案
我使用以下函数集来处理mysql日期,也许它们可以为您提供帮助:
function sqlArray($date, $trim=true) {
$result = array();
$result['day'] = ($trim==true) ? ltrim(substr($date,8,2),'0') : substr($date,8,2);
$result['month'] = ($trim==true) ? ltrim(substr($date,5,2),'0') : substr($date,5,2);
$result['year'] = substr($date,0,4);
$result['hour'] = substr($date,11,2);
$result['minutes'] = substr($date,14,2);
return $result;
}
function sqlInt($date) {
$date = sqlArray($date);
return mktime($date['hour'], $date['minutes'], 0, $date['month'], $date['day'], $date['year']);
}
function difference($dateStart, $dateEnd) {
$start = sqlInt($dateStart);
$end = sqlInt($dateEnd);
$difference = $end - $start;
$result = array();
$result['ms'] = $difference;
$result['hours'] = $difference/3600;
$result['minutes'] = $difference/60;
$result['days'] = $difference/86400;
return $result;
}
在你的情况下应该是这样的:
$dateplayed = '2011-01-17 11:01:44';
print_r(difference($dateplayed, date('Y:m:d')));
希望它有效:D
关于php - 如何获得以毫秒为单位的时差,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4715247/