summaryrefslogtreecommitdiff
path: root/addons/base/static/src/js/dates.js
diff options
context:
space:
mode:
authorniv-openerp <nicolas.vanhoren@openerp.com>2011-04-28 15:50:45 +0200
committerniv-openerp <nicolas.vanhoren@openerp.com>2011-04-28 15:50:45 +0200
commit66a14cfc0dd90acbcdba800e9f85e854c34939f3 (patch)
treeff6d0dd1ac261777373f945942c3f443cdd56f3f /addons/base/static/src/js/dates.js
parentd76cb7a3f1e988236182f1040c47f11aa50ea1a3 (diff)
[IMP] Added conversion functions for dates in javascript.
bzr revid: nicolas.vanhoren@openerp.com-20110428135045-ub5zuomewzjyob01
Diffstat (limited to 'addons/base/static/src/js/dates.js')
-rw-r--r--addons/base/static/src/js/dates.js89
1 files changed, 89 insertions, 0 deletions
diff --git a/addons/base/static/src/js/dates.js b/addons/base/static/src/js/dates.js
new file mode 100644
index 00000000000..da4e948e282
--- /dev/null
+++ b/addons/base/static/src/js/dates.js
@@ -0,0 +1,89 @@
+
+openerp.base.dates = function(openerp) {
+
+openerp.base.parse_datetime = function(str) {
+ if(!str) {
+ return str;
+ }
+ var regex = /\d\d\d\d-\d\d-\d\) \d\d:\d\d:\d\d/;
+ var res = regex.exec(str);
+ if ( res[0] != str ) {
+ throw "'" + str + "' is not a valid datetime";
+ }
+ var obj = Date.parse(str + " GMT");
+ if (! obj) {
+ throw "'" + str + "' is not a valid datetime";
+ }
+ return obj;
+};
+
+openerp.base.parse_date = function(str) {
+ if(!str) {
+ return str;
+ }
+ var regex = /\d\d\d\d-\d\d-\d\d/;
+ var res = regex.exec(str);
+ if ( res[0] != str ) {
+ throw "'" + str + "' is not a valid date";
+ }
+ var obj = Date.parse(str);
+ if (! obj) {
+ throw "'" + str + "' is not a valid date";
+ }
+ return obj;
+};
+
+openerp.base.parse_time = function(str) {
+ if(!str) {
+ return str;
+ }
+ var regex = /\d\d:\d\d:\d\d/;
+ var res = regex.exec(str);
+ if ( res[0] != str ) {
+ throw "'" + str + "' is not a valid time";
+ }
+ var obj = Date.parse(str);
+ if (! obj) {
+ throw "'" + str + "' is not a valid time";
+ }
+ return obj;
+};
+
+/**
+ * Just a simple function to add some '0' if an integer it too small.
+ */
+var fts = function(str, size) {
+ str = "" + str;
+ var to_add = "";
+ _.each(_.range(size - str.length), function() {
+ to_add = to_add + "0";
+ });
+ return to_add + str;
+};
+
+openerp.base.format_datetime = function(obj) {
+ if(! str) {
+ return false;
+ }
+ return fts(obj.getUTCFullYear(),4) + "-" + fts(obj.getUTCMonth() + 1,2) + "-"
+ + fts(obj.getUTCDate(),2) + " " + fts(obj.getUTCHours(),2) + ":"
+ + fts(obj.getUTCMinutes(),2) + ":" + fts(obj.getUTCSeconds(),2);
+};
+
+openerp.base.format_date = function(obj) {
+ if(! str) {
+ return false;
+ }
+ return fts(obj.getFullYear(),4) + "-" + fts(obj.getMonth() + 1,2) + "-"
+ + fts(obj.getDate(),2);
+};
+
+openerp.base.format_time = function(obj) {
+ if(! str) {
+ return false;
+ }
+ return fts(obj.getHours(),2) + ":" + fts(obj.getMinutes(),2) + ":"
+ + fts(obj.getSeconds(),2);
+};
+
+}; \ No newline at end of file