使用JavaScript制作一个转发到包含日期的网址的网页?

时间:2017-01-31 18:31:41

标签: javascript html

我想制作一个在网址中使用今天日期的书签;换句话说,当启动书签时,URL的结尾 每天都会变化 。所以今天将以.../2017/1/31结束,明天将以.../2017/2/1结束。

我认为最简单的方法是制作一个包含内联JavaScript的准系统HTML页面,以获取当前的年,月和日期,并将其附加到主URL(永远不会更改)。这有意义吗?有没有更简单的方法来实现这一目标?

我对HTML元素没问题,但对JavaScript很无能为力;我真的从另一个堆栈溢出的答案中复制了一个听起来不错的片段并将其放入我的头标签中,如下所示,并尝试将我的URL调整为ahref链接:

<HTML>
<head>
    <script>var d=new Date();</script>
</head>

<body>
    <a href="http://wol.org?t="+d.getTime()>Continue</a>
</body>
</HTML>

3 个答案:

答案 0 :(得分:1)

以下内容无需点击任何按钮即可运行:

<HTML>
<head>
    <script>
      Date.prototype.yyyymmdd = function() { //returns YYYY/MM/DD
        var mm = this.getMonth() + 1; // getMonth() is zero-based
        var dd = this.getDate();

        return [this.getFullYear(),
          (mm>9 ? '' : '0') + mm,
          (dd>9 ? '' : '0') + dd
         ].join('/');
      };
      var date = new Date();
      window.location.href = "your.url.com/" + date.yyyymmdd();
    </script>
</head>
<body>
</body>
</HTML>

此答案的日期函数:https://stackoverflow.com/a/3067896/3803371

注意我通常不会宽恕原生原型的修改,但我今天感觉很懒。

答案 1 :(得分:1)

您不能在 script 标记之外使用javascript表达式。所以你不能像这样调用 d.getTime 。而不是你可以这样做:

<a id="c" href="">Continue</a>
<script>
(function() { // wait for window load
  var d=new Date();
  var a = document.getElementById("c");
  a.href = "http://wol.org?t="+d.getTime();
})();
</script>

答案 2 :(得分:0)

您的代码存在一些问题。首先,您要混合使用HTML和JavaScript。 JavaScript只能在<script>标记之间切换。此外,脚本需要位于您要修改的链接下方。

如果您希望以year/month/day形式获取日期,则必须对从Date对象返回的日期字符串进行一些修改。我在下面做的基本上是获取日期字符串并将其/拆分成一个数组。我知道第一个指数是月份,第二个是日期,第三个指数给我一年。我将其中的每一个存储到一个变量中使用,然后重新排列。

然后我必须使用<a>找到getElementById()元素,然后使用我的日期变量更改了href值。

var dateString = new Date().toLocaleDateString();
var dateArray = dateString.split('/');

var month = dateArray[0];
var day = dateArray[1];
var year = dateArray[2];

var dateOrder = year + "/" + month + "/" + day;

console.log(dateOrder);

var a = document.getElementById('link');
a.href += dateOrder;
<a id="link" href="http://wol.org?t=">Continue</a>

<script>
 // Javascript from above goes here
</script>