0

我有一个最初取自Stackoverflow 问题线程的脚本。该脚本将允许用户注意页面最后一次被修改的时间。我希望脚本由其 SPAN CLASS 或 LABEL ID 而不是其 DIV SPAN 设置。任何帮助将非常感激。谢谢你。:)

这是我到目前为止所拥有的:

HTML

此页面已更新

JavaScript

var date = new Date();
var finaltime = timeSince(date);
setInterval(function(){
  document.getElementsByTagName('span')[0].innerHTML = timeSince(date);
},5000);
document.getElementsByTagName('span')[0].innerHTML = timeSince(date);

function timeSince(date) {
  var seconds = Math.floor((new Date() - date) / 1000);
  var interval = Math.floor(seconds / 31536000);

  if (interval > 1) {
    return interval + " years";
  }
  interval = Math.floor(seconds / 2592000);
  if (interval > 1) {
    return interval + " months";
  }
  interval = Math.floor(seconds / 86400);
  if (interval > 1) {
    return interval + " days";
  }
  interval = Math.floor(seconds / 3600);
  if (interval > 1) {
    return interval + " hours";
  }
  interval = Math.floor(seconds / 120);
  if (interval >= 2){
    return interval + "minutes";
  }
  interval = Math.floor(seconds / 60);
  if (interval == 1) {
    return interval + " minute";
  }

  return "a while";

}
4

3 回答 3

0

你在寻找这样的东西吗?

<div id="samplediv"> This page is updated <r id ="puthere"> </r></div>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script src="http://timeago.yarp.com/jquery.timeago.js"></script>
<script>
   var date = new Date();
   setInterval(function(){
      document.getElementById('samplediv').getElementsByTagName('r')[0].innerHTML = $.timeago(date);
		},500);
   document.getElementById('samplediv').getElementsByTagName('r')[0].innerHTML = $.timeago(date);
</script>

于 2016-05-10T01:58:22.303 回答
0

我已经通过这段代码解决了这个问题。

HTML

 This page is updated <span class="timeago_span"> </span> ago

JavaScript

var date = new Date();
var finaltime = timeSince(date);
setInterval(function(){
  document.getElementsByClassName('timeago_span')[0].innerHTML = timeSince(date);
},5000);
document.getElementsByClassName('timeago_span')[0].innerHTML = timeSince(date);


function timeSince(date) {
  var seconds = Math.floor((new Date() - date) / 1000);
  var interval = Math.floor(seconds / 31536000);

  if (interval > 1) {
    return interval + " years";
  }
  interval = Math.floor(seconds / 2592000);
  if (interval > 1) {
    return interval + " months";
  }
  interval = Math.floor(seconds / 86400);
  if (interval > 1) {
    return interval + " days";
  }
  interval = Math.floor(seconds / 3600);
  if (interval > 1) {
    return interval + " hours";
  }
  interval = Math.floor(seconds / 120);
  if (interval >= 2){
    return interval + " minutes";
  }
  interval = Math.floor(seconds / 60);
  if (interval == 1) {
    return interval + " minute";
  }

  // return Math.floor(seconds) + " seconds";
  return  " a while "

}
于 2016-05-10T03:25:28.000 回答
0

我之前没有看到你的代码,所以它是你当前代码的解决方案。

var pa = document.getElementById('lbl_timeago').parentNode;
        setInterval(function(){
            pa.innerHTML = timeSince(date);
            },5000);
        pa.innerHTML = timeSince(date);

没有太大变化。我测试过,应该可以的。

在 jQuery 中

$('#puthere').parent();
于 2016-05-10T01:45:13.547 回答