Live Clock and Date on Rails

Hello, guys.

Is there any example of a live clock and date on Rails? I'm using one
made on Javascript, but the main problem i'm having is when using any
Linux distro, which seems to show date incorrectly. For an example,
instead of today, it shows tomorrow date as today's date.

As I know JS is client-sided, it's impossible to change that. It's not
noticeable on Windows, which shows the date just fine. I want to know
if there's an app, command or something to show the server date and
time... live.

I hope I'm not asking too much, but I need help on this.


The Neurochild

Are you saying that everyone who looks at your app from a linux
machine sees the date as tomorrow? What about people with Macs? I
heard that Macs show the date as next week. People with Macs are
always ahead of curve :slight_smile:

Seriously though ... maybe you loaded the page from a linux box that
had the date wrong. Can you verify?

Yes, I double checked it and Linux shows today's date but when the
Rails app is running with the JS live clock in Linux, it shows

I'm using Debian 4, and it also happens in Ubuntu. Word.


Can you post a URL to see this, or at least the JS code for the clock?

Sure, why not?

// "Live Clock Advanced" script - Version 1.0
// By Mark Plachetta (
// Get the latest version at:
// Based on the original script: "Upper Corner Live Clock"
// available at:
// - Dynamic Drive (
// - Website Abstraction (
// ========================================================
// - Gave more flexibility in positioning of clock
// - Added date construct (Advanced version only)
// - User configurable
// ========================================================
// Both "Advanced" and "Lite" versions are available free
// of charge, see the website for more information on the
// two scripts.

/////////////// CONFIGURATION /////////////////////////////

  // Set the clock's background color:
  var myback_color = "#FFFFFF";

  // Set the width of the clock (in pixels):
  var mywidth = 300;

  // Display the time in 24 or 12 hour time?
  // 0 = 24, 1 = 12
  var my12_hour = 1;

  // How often do you want the clock updated?
  // 0 = Never, 1 = Every Second, 2 = Every Minute
  // If you pick 0 or 2, the seconds will not be displayed
  var myupdate = 1;

  // Display the date?
  // 0 = No, 1 = Yes
  var DisplayDate = 1;

/////////////// END CONFIGURATION /////////////////////////

// Browser detect code
        var ie4=document.all
        var ns4=document.layers
        var ns6=document.getElementById&&!document.all

// Global varibale definitions:

  var dn = "";
  var mn = "";
  var old = "";

// The following arrays contain data which is used in the clock's
// date function. Feel free to change values for Days and Months
// if needed (if you wanted abbreviated names for example).
  var DaysOfWeek = new Array(7);
    DaysOfWeek[0] = "Domingo";
    DaysOfWeek[1] = "Lunes";
    DaysOfWeek[2] = "Martes";
    DaysOfWeek[3] = "Miércoles";
    DaysOfWeek[4] = "Jueves";
    DaysOfWeek[5] = "Viernes";
    DaysOfWeek[6] = "Sábado";

  var MonthsOfYear = new Array(12);
    MonthsOfYear[0] = "Enero";
    MonthsOfYear[1] = "Febrero";
    MonthsOfYear[2] = "Marzo";
    MonthsOfYear[3] = "Abril";
    MonthsOfYear[4] = "Mayo";
    MonthsOfYear[5] = "Junio";
    MonthsOfYear[6] = "Julio";
    MonthsOfYear[7] = "Agosto";
    MonthsOfYear[8] = "Septiembre";
    MonthsOfYear[9] = "Octubre";
    MonthsOfYear[10] = "Noviembre";
    MonthsOfYear[11] = "Deciembre";

// This array controls how often the clock is updated,
// based on your selection in the configuration.
  var ClockUpdate = new Array(3);
    ClockUpdate[0] = 0;
    ClockUpdate[1] = 1000;
    ClockUpdate[2] = 60000;

// For Version 4+ browsers, write the appropriate HTML to the
// page for the clock, otherwise, attempt to write a static
// date to the page.
  if (ie4||ns6) { document.write('<span id="LiveClockIE"
style="width:'+mywidth+'px; background-color:'+myback_color+'"></

'); }

  else if (document.layers) { document.write('<ilayer
bgColor="'+myback_color+'" id="ClockPosNS" visibility="hide"><layer
width="'+mywidth+'" id="LiveClockNS"></layer></ilayer>'); }
  else { old = "true"; show_clock(); }

// The main part of the script:
  function show_clock() {
    if (old == "die") { return; }

  //show clock in NS 4
    if (ns4)
  // Get all our date variables:
    var Digital = new Date();
    var day = Digital.getDay();
    var mday = Digital.getDate();
    var month = Digital.getMonth();
    var hours = Digital.getHours();
    var year = Digital.getYear();

    var minutes = Digital.getMinutes();
    var seconds = Digital.getSeconds();

    if (year < 1000) { year += 1900; }

  // Fix the "mn" variable if needed:
    if (mday == 1) { mn = "ro."; }

  // Set up the hours for either 24 or 12 hour display:
    if (my12_hour) {
      dn = "AM";
      if (hours > 12) { dn = "PM"; hours = hours - 12; }
      if (hours == 0) { hours = 12; }
    } else {
      dn = "";
    if (minutes <= 9) { minutes = "0"+minutes; }
    if (seconds <= 9) { seconds = "0"+seconds; }

  // This is the actual HTML of the clock. If you're going to play
  // with this, be careful to keep all your quotations in tact.
    myclock = '';
    if (DisplayDate) { myclock += DaysOfWeek[day]+', '+mday+mn+' de
'+MonthsOfYear[month]+' de '+year; }
    myclock += '. ';
    myclock += hours+':'+minutes;
    if ((myupdate < 2) || (myupdate == 0)) { myclock += ':'+seconds; }
    myclock += ' '+dn;

    if (old == "true") {
      old = "die";

  // Write the clock to the layer:
    if (ns4) {
      clockpos = document.ClockPosNS;
      liveclock = clockpos.document.LiveClockNS;
    } else if (ie4) {
      LiveClockIE.innerHTML = myclock;
    } else if (ns6){
      document.getElementById("LiveClockIE").innerHTML = myclock;

  if (myupdate != 0) { setTimeout("show_clock()",ClockUpdate
[myupdate]); }

Wow, that's just scary old :slight_smile:

In any case, it works fine on my OS X box and an Ubuntu VM, so I'd
suggest you check the TZ settings on the systems you're seeing a
problem on.


As I said, even though I'm in Venezuela, the timezone in which my
computer is set, I'm still having the problem. (Time zone is -4:30GMT)

I just don't know what to do anymore. I insist, is there live clock in


You don't seem to understand how this all works together. Your rails
code on the server has nothing to do with the javascript that runs in
the browser other than what html and javascript that it might

There is nothing you can do in Rails that you also can't just hard
code in a simple html file, which you keep insisting shows the wrong

It sounds like you just have some bad javascript code. Have you tried
dropping in any one of the 10,000 javascript samples available from a
basic google search?

I was hoping you can show me something. I know a live clock that works
with PHP/JS exists. I've seen it.

I'll stop right here, it seems there's nothing available here. I give

As I said, even though I'm in Venezuela, the timezone in which my
computer is set, I'm still having the problem. (Time zone is -4:30GMT)

No, I meant is there a difference between the system clock and the
display clock on your systems?

I just don't know what to do anymore.

Well, the code you're using is incredibly archaic, but as I said -- it
works fine here. It really shouldn't be that hard to put some debug
statements into it and see where the discrepancy is coming from.

Good luck,

For a live clock it doesn't matter if it's PHP/JS or Rails/JS. If you
know working example with PHP/JS then it will work with Rails/JS. Live
clock is just JS script and the only thing it depends on is browser
implementation. Maybe you just have some archaic browser?