我想创建一个JavaScript倒数计时器;如何更改未来的Unix时间戳到秒剩余
我有一个格式为YYYY-MM-DD HH:MM:SS的字符串。
这可能是任何时间长达6个月在未来。
从现在到未来的时间,几秒钟内完成剩余时间的最佳方法是什么?这可以用PHP实现。
在此先感谢!
我想创建一个JavaScript倒数计时器;如何更改未来的Unix时间戳到秒剩余
我有一个格式为YYYY-MM-DD HH:MM:SS的字符串。
这可能是任何时间长达6个月在未来。
从现在到未来的时间,几秒钟内完成剩余时间的最佳方法是什么?这可以用PHP实现。
在此先感谢!
在PHP中您可以使用strtotime
,这需要一个日期的字符串表示,并返回Unix时间戳。
然后使用microtime
获取当前的unix时间戳,并找出差异。这将是剩余的毫秒数,所以将其除以1000以在几秒内得到它。
http://php.net/manual/en/function.strtotime.php
http://php.net/manual/en/function.microtime.php
这应该工作:
$currentTime = explode(" ", microtime());
$currentTime = $currentTime[1];
$futureTime = strtotime("YYYY-MM-DD HH:MM:SS"); // insert your date here
$timeRemaining = ($futureTime - $currentTime)/1000;
你如何得到这个基于字符串的时间戳?一个unix时间戳实际上已经是“自1970-01-01 00:00:00以来的秒数”。这看起来像一个本地的MySQL日期字符串。
如果它来自MySQL,您可以将它转换为一个带有UNIX_TIMESTAMP()
的unix样式时间戳,例如,
SELECT unix_timestamp(datetimefield) ...
,然后将其转换为一个Javascript时间戳通过乘以1000(JS时间戳具有相同的时代,但以毫秒为单位)。
如果你被困在PHP中,你可以去快速/污垢与
$timestamp = strtotime($time_string);
$js_timestamp = $timestamp * 1000;
感谢您的帮助,我在做什么是设置,我在我的网站上投放的比赛截止日期。我以与unix时间戳相同的格式将值输入到mysql表中 – user866190 2012-01-12 19:42:41
unix时间戳只是一个数字:自1月19日以来的秒数。例如现在,当我输入这个时,我的本地机器上的unix时间戳是1326397358。 – 2012-01-12 19:43:53
@ user866190通常,您只需将数字存储在数据库中,而不是其字符串表示形式。你能做到这一点吗?还是你坚持使用遗留代码/现有记录? – Matt 2012-01-12 19:51:53