我正在为我的一个信息学项目制作一个网站。为此,我想:
- 输出可存储在数据库中的日期的 php 脚本。
- Javascript 倒计时到那个日期。如果完成,我想显示一个超链接(简单的 HTML anchor )。
第 1 项已经完成,但我很难完成第 2 项。到目前为止,我们只学习了 HTML、MySQL 和 PHP。所以我现在正在学习 Javascript。这个网站上的所有例子都太难理解了,必须有更简单的方法来理解。我想了解代码。
PHP(无需编辑):
function Klaar_Bouw($getal=0) {
$nu = strtotime("now");
$dag = floor($getal / 86400);
$uur = floor(($getal % 86400) / 3600);
$min = floor(($getal % 3600) / 60);
$sec = ($getal % 60);
$nieuw = date('d-m-Y H:i:s', mktime(
date('H',$nu)+$uur,
date('i',$nu)+$min,
date('s',$nu)+$sec,
date('m',$nu),
date('d',$nu)+$dag,
date('Y',$nu))
);
return $nieuw;
}
$bouwklaar = Klaar_Bouw( -! random number in seconds !-);
echo"$bouwklaar";
Javascript:
function Bouwen(BouwKlaar) {
var bouwtijd = new Date(BouwKlaar);
var dag = (getUTCDay(bouwtijd) - getUTCDay());
var uur = (getUTCHours(bouwtijd) - getUTCHours());
var min = (getUTCMinutes(bouwtijd) - getUTCMinutes());
var sec = (getUTCSeconds(bouwtijd) - getUTCSeconds());
return dag + ":" + uur + ":" + min + ":" + sec;
}
setInterval(function () {
var bouw = Bouwen('2013, 05, 21, 20, 00, 00');
document.getElementById("datum").innerHTML = bouw;
}, 500);
输出格式: dd:hh:mm:ss(倒数到0,输出HTML anchor 链接)
最佳答案
您滥用了 Date 对象。尝试这样使用:
function Bouwen(year, month, day, hour, minute, second) {
var bouwtijd = new Date(year, (month - 1), day, hour, minute, second);
当然还有:
var bouw = Bouwen(2013, 5, 21, 20, 0, 0);
如果你的倒计时每秒刷新一次,你的间隔不需要以 500 毫秒的频率运行。因此,每秒使用:window.setTimeout('targetFunction()', 1000)
。另外,它会在同一时间打印,因为您没有更改它。
要更改它,您必须将函数设置为按从秒减 1 的间隔调用自身。但是在调用间隔之前,您必须比较当前日期(倒计时)是否等于另一个日期(您未在文本中指定)以停止它并显示您的超链接。
祝你好运。
关于PHP 生成日期 -> Javascript 倒计时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16675592/