我有一个 JavaScript 倒计时器。它有两个变量。两者都存储当前日期。将一个变量 (currentDate
) 转换为毫秒,然后根据 10 分钟添加毫秒。其他变量 (d
) 将当前日期时间存储在每秒运行的函数中。该函数获取两者之间的差异并以秒为单位显示。这样可行。下面是代码。
<script>
var currentDate = new Date();
var d =new Date();
var tl = currentDate.setTime(currentDate.getTime() + 2*60*1000);
var seconds =(tl - d)/1000;
function secondPassed() {
var minutes = Math.round((seconds - 30)/60);
var remainingSeconds = seconds % 60;
if (remainingSeconds < 10) {
remainingSeconds = "0" + remainingSeconds;
}
document.getElementById('countdown').innerHTML = minutes + ":" + remainingSeconds;
if (seconds == 0) {
clearInterval(countdownTimer);
document.getElementById('bonus').innerHTML = "Buzz Buzz";
} else {
seconds--;
}
}
var countdownTimer = setInterval('secondPassed()', 1000);
</script>
但问题是,每次刷新页面时,倒计时都会从 10 分钟重新开始。我想在 php 中存储特定的日期时间(TIMESTAMP)(当用户访问页面时将存储该日期时间)。然后我将添加 10 分钟,并且该日期时间将作为 JavaScript 中的引用来减去当前时间戳。
所以基本上我需要将 php 日期时间 (TIME_STAMP) 转换为毫秒,将其提供给 javascript,根据 10 分钟添加毫秒,并减去与当前日期时间对应的毫秒以获得函数中的剩余时间。
javascript中的gettime方法以1970-01-01 00:00:00为引用来转换为毫秒。所以,简而言之,我需要获取该时间与存储的日期时间(TIMESTAMP)之间的毫秒数。我该怎么做?
我需要在 php 中执行此操作,而不是 MySQL,所以这个问题:MYSQL - datetime to seconds对我没有帮助。
编辑:我将日期存储为 MySQL 中的 TIMESTAMP。
最佳答案
使用 PHP 的 time
函数获取自纪元以来的秒数:
Returns the current time measured in the number of seconds since the Unix Epoch (January 1 1970 00:00:00 GMT).
从你的问题中我并不清楚你如何在数据库中存储时间戳,但如果它是 MySQL DATETIME
,当你从数据库使用SELECT UNIX_TIMESTAMP(time_col)
将其即时转换为自纪元以来的秒数。现在,您在所有情况下都在处理 UNIX 时间戳。
关于javascript - 在 PHP 中获取 MySQL DateTime 到 JavaScript 中的秒,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22332215/