0

I have a script that originally taken from Stackoverflow question thread. This script will allow the user to notice when was the last time the page has been modified. I want the script to be set by its SPAN CLASS or LABEL ID not by its DIV SPAN. Any help would be much appreciated. Thank you. :)

Here is what I have so far :

HTML

This page is updated ago

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";

}
Community
  • 1
  • 1
x'tian
  • 734
  • 2
  • 14
  • 40

3 Answers3

0

I didn't see your code before, so it's the solution to your current code.

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

Didn't change much. I've tested, it should work.

In jQuery

$('#puthere').parent();
Arjenloeb
  • 104
  • 8
  • Hi Sorry but it's not working. I don't know if I placed the code right or it just not working. Would you mind to provide exact code? Thank you. – x'tian May 10 '16 at 02:20
0

Are you looking for something like this?

<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>
ahPo
  • 374
  • 3
  • 9
0

I have solved this problem by this code.

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 "

}
x'tian
  • 734
  • 2
  • 14
  • 40