Javascript 想要将ID或标记从HTML/PHP转发到JS(Keith Wood倒计时jQuery插件)
我是新来的。很高兴认识你 我有点左右为难。几天来,我一直试图修复臭名昭著的“最终倒计时”jQuery插件,并让它运行在MomentsJS中。但是我运气不好。对于非专业的网络程序员来说,这部纪录片几乎是不存在的(我不这么认为)。所以我尝试了其他的方法。。。直接使用MomentsJS,但这会导致大量的重新加载(AJAX),特别是当出现问题时,我不能在一个页面上使用多个计时器。然后我又回到了Keith Wood的倒计时/定时器插件,我终于让它运行起来了。还要感谢StackOverFlow文章。但是,我想优化代码——这就是我的问题所在 我想做什么:Javascript 想要将ID或标记从HTML/PHP转发到JS(Keith Wood倒计时jQuery插件),javascript,php,jquery,html,Javascript,Php,Jquery,Html,我是新来的。很高兴认识你 我有点左右为难。几天来,我一直试图修复臭名昭著的“最终倒计时”jQuery插件,并让它运行在MomentsJS中。但是我运气不好。对于非专业的网络程序员来说,这部纪录片几乎是不存在的(我不这么认为)。所以我尝试了其他的方法。。。直接使用MomentsJS,但这会导致大量的重新加载(AJAX),特别是当出现问题时,我不能在一个页面上使用多个计时器。然后我又回到了Keith Wood的倒计时/定时器插件,我终于让它运行起来了。还要感谢StackOverFlow文章。但是,我
- 我想为网页创建一个简单的倒计时/计时器(布局为 现在不关我的事
- 它必须具有服务器时间/时区意识,而不是关注 客户端/浏览器时间
!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html;charset=utf-8">
<title>jQuery Countdown</title>
<link rel="stylesheet" href="jquery.countdown.css">
<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.0/jquery.min.js"></script>
<script src="jquery.plugin.js"></script>
<script src="jquery.countdown.js"></script>
<script src="timer.js"></script>
</head>
<body>
COUNTDOWN 1
<div id="defaultCountdown" data-end="Sep 22, 2016 00:00:00 +0000"></div>
</body>
</html>
PHP
<?php
$now = new DateTime();
echo $now->format("M j, Y H:i:s O")."\n";
?>
因此,应该有一个从HTML文件中读取数值的变量(请参见“data end”),而不是冗长的日期,这样我就不必在每次更新计时器时都弄乱JS文件。如果我想触发多个倒计时/计时器,这也非常耗时。但遗憾的是,我不知道如何进行。我尝试了.attr()代码,但它不起作用。要么JS每天/小时/分钟(NaN)抛出一个错误,要么什么也不显示
如果可能的话,我还想改变两件事,即:
- 时间格式(例如YYYY/MM/DD hr/Min/Sec
- 时区(当前,它所在的服务器是 GMT+1,但我想控制它)
$(function () {
$("#defaultCountdown").countdown({
until: $('#defaultCountdown').data('end),
serverSync: serverTime
});
});
date\u default\u timezone\u set()
$(function () {
$("#defaultCountdown").countdown({
until: $('#defaultCountdown').data('end),
serverSync: serverTime
});
});
date\u default\u timezone\u set()
我不知道jQuery,所以不确定以下内容是否真的有效,但也许您可以试试:
$( function() {
this.countdown({
until: this.dataset.end,
serverSync: serverTime
} );
}.bind( $("#defaultCountdown") ) );
我不知道jQuery,所以不确定以下内容是否真的有效,但也许您可以试试:
$( function() {
this.countdown({
until: this.dataset.end,
serverSync: serverTime
} );
}.bind( $("#defaultCountdown") ) );
通常要访问该
dataset
属性,它类似于document.getElementById('defaultCountdown').dataset.end
,因此您可以将代码更改为until:new Date(document.getElementById('defaultCountdown').dataset.end)
非常非常感谢,这对我很有效,也解决了我几个小时的挫折感。我想JS毕竟不是我的强项。通常,访问dataset
属性类似于document.getElementById('defaultCountdown').dataset.end
,这样您就可以将代码更改为,直到:new Date(document.getElementById('defaultCountdown').dataset.end)
非常感谢,这对我来说很有效,也解决了我几个小时的挫折感。我想JS不是我的强项,毕竟我想我那时不会弄乱时间格式。但是,你的代码想法很遗憾地没有起作用。对我有效的是直到:新的日期(document.getElementById('defaultCountdown').dataset.end)
有一个打字错误,缺少一个#。现在试试,让jQuery允许我想我那时不会弄乱时间格式。遗憾的是,你的代码想法没有起作用。对我有效的是直到:新日期(document.getElementById('defaultCountdown').dataset.end)
有一个输入错误,缺少一个#。现在尝试一下,让jQuery alloverThanks,但遗憾的是这不起作用-请参见上面的答案谢谢,但遗憾的是这不起作用-请参见上面的答案