我正在为我的信息学项目建立一个网站。为此,我想做:
第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锚链接)
答案 0 :(得分:2)
您滥用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来调用自身。但是在调用间隔之前,你必须比较你当前的日期(倒计时)是否等于另一个日期(你没有在你的文字中指定)来停止并显示你的超链接。
答案 1 :(得分:0)
看看这个jsFiddle。几个问题:
new Date
功能。此函数接收几个整数输入,而不是格式化的字符串。