2014-02-05 101 views
0

我有一个需要能够在一个对象设置一个参数去昨天的日期如下所示: 设置在对象的日期到昨天的日期

但我难倒为赌注如何做到这一点。

<!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> 

回答

0

只是假设的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或当前时间,但是你可以从上面的代码中很容易地得出结论。

+0

JavaScript的工作就像一个魅力! – wildWill

0
var yesterday = function() { var date = new Date(); date.setDate(date.getDate() - 1); return date; } 

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

var date = yesterday();