App-MFILE-WWW

 view release on metacpan or  search on metacpan

share/js/core/datetime.js  view on Meta::CPAN

                m = 10;
            } else if (month === "NOV") {
                m = 11;
            } else if (month === "DEC") {
                m = 12;
            }
            return m;
        }, // monthToInt

        readableDate = function (urd) {
            // convert "YYYY-MM-DD HH:DD:SS+TZ" string into YYYY-MMM-DD
            var ymd = urd.substr(0, urd.indexOf(" ")).split('-'),
                year,
                m,
                day,
                month;
            if (ymd.length !== 3) {
                return urd;
            }
            year = parseInt(ymd[0], 10);
            m =    parseInt(ymd[1], 10);
            day =  parseInt(ymd[2], 10);
            month = intToMonth(m);
            return year.toString() + "-" + month + "-" + day.toString();
        }, // readableDate

        strToMonth = function (buf, full) {
            console.log("Entering strToMonth() with argument", buf);
            var m = String(buf).trim().toLowerCase().slice(0, 3);
            if (m.length < 1) {
                return null;
            }
            if (mlo.hasOwnProperty(m)) {
                if (full === true) {
                    return mlo[m];
                } else {
                    return mlo[m].toUpperCase().slice(0, 3);
                }
            }
            return null;
        }, // strToMonth

        timeToMinutes = function (ts) {
            // convert a canonicalized time string into minutes
            var buf = String(ts).split(':');
            if (buf.length !== 2) {
                return null;
            }
            buf[0] = parseInt(buf[0], 10);
            if (buf[0] > 24) {
                return null;
            }
            buf[1] = parseInt(buf[1], 10);
            if (buf[1] > 59) {
                return null;
            }
            return buf[0] * 60 + buf[1];
        },

        tsrangeToDateAndTimeRange = function (tsr) {
            // tsr looks like this: ["2017-10-20 08:00:00+02","2017-10-20 12:00:00+02")
            var date = tsr.match(/\d{4}-\d{2}-\d{2}/)[0];
            return [date, tsrangeToTimeRange(tsr)];
        },

        tsrangeToTimeRange = function (tsr) {
            // tsr looks like this: ["2017-10-20 08:00:00+02","2017-10-20 12:00:00+02")
            var begin, end, h, m, s, re = /\d{2}:\d{2}:\d{2}/;
            [begin, end] = tsr.split(',');
            begin = begin.match(re)[0];
            [h, m, s] = begin.split(':');
            begin = h + ':' + m;
            end = end.match(re)[0];
            [h, m, s] = end.split(':');
            end = h + ':' + m;
            return begin + '-' + end;
        },

        vetDate = function (d) {
            console.log("Entering vetDate() with argument", d);
            var i,
                td = String(d).trim(),
                tda;

            // handle offset date (e.g. "-1", "+2")
            if (td === "0" || td.match(/^[+-]\d+$/)) {
                return vetDateOffset(td);
            }

            tda = td.split(/-|\.|\/|\s+/);
            console.log("Identified " + tda.length + " date components", tda);

            if (tda.length === 1 && String(tda[0]).length === 0) {
                return vetDateNothing();
            } else if (tda.length === 1) {
                return vetDateDD(tda);
            } else if (tda.length === 2) {
                if (coreLib.isInteger(tda[0]) && ! coreLib.isInteger(tda[1])) {
                    return vetDateDDMM(tda);
                } else {
                    return vetDateMMDD(tda);
                }
            } else if (tda.length === 3) {
                return vetDateYYYYMMDD(tda);
            }
            return null;
        },

        vetDateDD = function (ds) {
            var d4 = String(ds).toLowerCase().slice(0, 4);
            if (d4 == "toda") {
                return vetDateOffset(0);
            }
            if (d4 == "yest") {
                return vetDateOffset(-1);
            }
            if (d4 == "tomo") {
                return vetDateOffset(+1);
            }
            return vetDateYYYYMMDD([
                today.getFullYear(), today.getMonth() + 1, ds[0]
            ]);
        }, // vetDateDD

        vetDateDDMM = function (ds) {
            return vetDateYYYYMMDD([
                today.getFullYear(), ds[1], ds[0]



( run in 1.108 second using v1.01-cache-2.11-cpan-39bf76dae61 )