Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to cache the JavaScript Date object?

I am using Date.js to support many cultures in my web app. The problem here is that date.js has code like this.

  Date.prototype._toString = Date.prototype.toString;
  Date.prototype.toString = function () {
    //doing something
        return this._toString();
   }

when I use another culture file, it also contains this definition. so logically my doc has this

//date.js
     Date.prototype._toString = Date.prototype.toString;
     Date.prototype.toString = function () {
     //doing something
         return this._toString();
     }
     //date-fr-FR.js
     Date.prototype._toString = Date.prototype.toString;
     Date.prototype.toString = function () {
         //doing something
         return this._toString();
     }

I am refering to both date.js and date-fr-FR.js in my web app.

The problem is when I use the toString function var d = new Date().toString(); it throws an Out of stack space msg, because of the recursive calls. Is there any way to cache the orginal Date object and rest it back, because i don't want to remove date.js from doc

like image 490
BalaKrishnan웃 Avatar asked Sep 22 '26 13:09

BalaKrishnan웃


1 Answers

Instead of including both date.js and date-fr-FR.js, you only need to include the fr-FR.js file to change the culture, which you will find in the src/globalization folder in the Datejs-all-Alpha1.zip file. The fr-FR.js file only contains the culture specific data, and it should override what is already included in date.js, without redefining the functionality.

like image 53
AndrewR Avatar answered Sep 24 '26 03:09

AndrewR



Donate For Us

If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!