如何在未来将Unix时间戳更改为剩余秒数


How To Change A Unix Timestamp In The Future To Seconds Remaining

我正在尝试创建一个javascript倒计时计时器;

我有一个格式为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) ...

然后乘以1000将其转换为Javascript时间戳(JS时间戳具有相同的epoch,但以毫秒为单位)。

如果你被困在PHP中,你可以使用快速/肮脏

$timestamp = strtotime($time_string);
$js_timestamp = $timestamp * 1000;