Javascript 想要将ID或标记从HTML/PHP转发到JS(Keith Wood倒计时jQuery插件)

Javascript 想要将ID或标记从HTML/PHP转发到JS(Keith Wood倒计时jQuery插件),javascript,php,jquery,html,Javascript,Php,Jquery,Html,我是新来的。很高兴认识你 我有点左右为难。几天来,我一直试图修复臭名昭著的“最终倒计时”jQuery插件,并让它运行在MomentsJS中。但是我运气不好。对于非专业的网络程序员来说,这部纪录片几乎是不存在的(我不这么认为)。所以我尝试了其他的方法。。。直接使用MomentsJS,但这会导致大量的重新加载(AJAX),特别是当出现问题时,我不能在一个页面上使用多个计时器。然后我又回到了Keith Wood的倒计时/定时器插件,我终于让它运行起来了。还要感谢StackOverFlow文章。但是,我

我是新来的。很高兴认识你

我有点左右为难。几天来,我一直试图修复臭名昭著的“最终倒计时”jQuery插件,并让它运行在MomentsJS中。但是我运气不好。对于非专业的网络程序员来说,这部纪录片几乎是不存在的(我不这么认为)。所以我尝试了其他的方法。。。直接使用MomentsJS,但这会导致大量的重新加载(AJAX),特别是当出现问题时,我不能在一个页面上使用多个计时器。然后我又回到了Keith Wood的倒计时/定时器插件,我终于让它运行起来了。还要感谢StackOverFlow文章。但是,我想优化代码——这就是我的问题所在

我想做什么:

  • 我想为网页创建一个简单的倒计时/计时器(布局为 现在不关我的事
  • 它必须具有服务器时间/时区意识,而不是关注 客户端/浏览器时间
我正在使用哪些模块: -jQuery -Keith Wood的倒计时jQuery插件v2.0.2 -当前为HTML

我想要实现什么: -我想有一个HTML文件,然后链接到.js文件进行清理 脚本中的主HTML文件(没有人会看到,我使用 页面上的更多脚本/函数将集成这些脚本/函数 (无论如何) -但是我想转发一个ID/类/数组

以下是迄今为止的代码:

HTML

!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,但我想控制它)
就代码而言,我是一名新生,我可以四处走走一些基本的东西,但如果真的要转发价值观并与之合作,我会迷失在海洋中

如果您能及时提供帮助,我们将不胜感激——也许这是一件我还没有想到的简单事情。因此,提前谢谢您,欢迎您登机

要从div中获取值,可以在js中使用

$(function () {
     $("#defaultCountdown").countdown({
         until: $('#defaultCountdown').data('end),
         serverSync: serverTime
     });
 });
  • 对于时区,您可以使用
    date\u default\u timezone\u set()

  • coundoun.js以某种方式期望时间格式。我怀疑您得到的NaN是您试图更改它的结果

  • 欢迎登机

    要从div中获取值,可以在js中使用

    $(function () {
         $("#defaultCountdown").countdown({
             until: $('#defaultCountdown').data('end),
             serverSync: serverTime
         });
     });
    
  • 对于时区,您可以使用
    date\u default\u timezone\u set()

  • coundoun.js以某种方式期望时间格式。我怀疑您得到的NaN是您试图更改它的结果


  • 我不知道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,但遗憾的是这不起作用-请参见上面的答案谢谢,但遗憾的是这不起作用-请参见上面的答案