Javascript .getHours()返回奇怪的结果

时间:2012-07-25 21:03:58

标签: php javascript timestamp

我正在将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

为什么我从.getHours()获得“19”的任何想法?

1 个答案:

答案 0 :(得分: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;