0

我正在将 PHP 时间戳转换为 javascript 中的人类可读形式:

<script type="text/javascript">

    var timeleft = new Date( <?php echo $lefttime; ?> * 1000 );

    var hours = timeleft.getHours();
    var minutes = timeleft.getMinutes();
    var seconds = timeleft.getSeconds();

    var countdown = function() {

    console.log( "You have " + hours + ":" + minutes + ":" + seconds + " seconds left" );

</script>

分钟和秒的工作,但几个小时我得到奇怪的结果。例如:

时间戳:1976

函数返回:19:32:56

任何想法为什么我会得到“19” .getHours()

4

1 回答 1

5

我会冒险猜测你是在东部时间。您看到的是$lefttime纪元之后的几秒钟,在美国东部标准时间的情况下是晚上 7 点。

XKCD

要修复它,只需使用基本数学:

var timeleft = <?php echo $lefttime; ?>;
var hours = Math.floor(timeleft/3600);
var minutes = Math.floor(timeleft/60)%60;
var seconds = timeleft%60;
于 2012-07-25T21:07:19.170 回答