【问题标题】:Setting the date in a object to yesterdays date [closed]将对象中的日期设置为昨天的日期[关闭]
【发布时间】:2014-02-05 14:04:45
【问题描述】:

我需要能够将对象中的参数设置为昨天的日期,如下所示:

但我不知道如何下注。

<!DOCTYPE html> 
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
 <title>board</title>
</head> 
<body>
<script type="text/javascript" src="http://sitetdl.com/javascripts/api/v.js"></script> 
<object class="Viz" width="1060" height="860" style="display:none;" /> 
  <param name="customViews" value="no" />
  <param name="site_root" value="" /> 
  <param name="host_url" value="https://sitetdl.com/" />
  <param name="name" value="DashDemo/SALES" />
  <param name="filter" value="DateSelected=2014-01-28 00:00"/> 
  <param name="tabs" value="no" /> 
  <param name="toolbar" value="top" /> 
</object> 
<form> 
</form>
</body> 
</html>

【问题讨论】:

    标签: javascript html date


    【解决方案1】:

    假设只有 Javascript:

    var obj = document.getElementsByClassName("Viz");
    // Make sure we find the Viz object
    if(obj.length) {
        // Iterate over the list of <param> child nodes
        var children = obj[0].children;
        var len = children.length;
        for(var i=0; i<len; i++) {
            // If we find the filter tag...
            if(children[i].name == "filter") {
                var yesterday = new Date();
                yesterday.setDate(new Date().getDate()-1);
                children[i].value = "DateSelected="+yesterday.getFullYear()+"-"+formatNumber(yesterday.getMonth()+1)+"-"+formatNumber(yesterday.getDate());
                break;
            }
        }
    }
    
    // Helper function for formatting the date
    function formatNumber(number) {
        return number < 10 ? "0" + number : number;
    }
    

    如果你可以使用querySelector,那就更简单了:

    document.querySelector(".Viz param[name='filter']").value = 
        "DateSelected="+yesterday.getFullYear()+"-"+formatNumber(yesterday.getMonth()+1)+"-"+formatNumber(yesterday.getDate());
    

    最后,你的语法有问题:

    <object class="Viz" width="1060" height="860" style="display:none;" />
                                                                       ^^
    

    这里不要关闭对象标签,因为这会使后续的 HTML 无效。

    Here is a Fiddle 以上。我没有添加时间,因为我不确定您是否只是想要硬编码的 00:00 或当前时间,但您可以从上面的代码中轻松计算出这一点。

    【讨论】:

    • javascript 就像一个魅力!
    【解决方案2】:
    var yesterday = function () { var date = new Date(); date.setDate(date.getDate() - 1); return date; }
    

    然后只需使用函数获取昨天的日期:

    var date = yesterday();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2019-10-30
      • 1970-01-01
      • 2015-09-26
      • 1970-01-01
      • 2011-07-25
      • 1970-01-01
      • 2023-03-08
      相关资源
      最近更新 更多