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

标签 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”吗?

最佳答案

我大胆猜测一下您现在处于东部时间。您看到的是纪元之后的 $lefttime 秒,在 EST 中是晚上 7 点。

XKCD

要解决这个问题,只需使用基本数学:

var timeleft = <?php echo $lefttime; ?>;
var hours = Math.floor(timeleft/3600);
var minutes = Math.floor(timeleft/60)%60;
var seconds = timeleft%60;

关于php - Javascript .getHours() 返回奇怪的结果,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11658598/

相关文章:

php - 是否应该报告并修复 PHP 'Notices'?

javascript - 使用 javascript 捕获文档级按键事件

javascript - 查找特定标签 a

ruby-on-rails - 对于MySQL和Sqlite3,迁移文件中Rails的日期时间和时间戳是否相同?

java - 如何在javaFX中为xylinechart设置带时间戳的x轴范围?

linux - 如何编码和解码64位格式的NTP时间戳?

php - 通过 Laravel 更新 .env 值

php - 如何检查是否已输入 session_start?

php - 为什么要使用 realpath()?

javascript - 使用nodejs和angularjs更新mongodb