java Framwork Function

本文介绍了一种用于处理日期格式转换的实用JavaScript函数集合,包括ISO到WCF格式、字符串解析等,适用于不同场景的需求。

Date:
var DateHelper = {
    ISO2WCF: function(value) {
        /*var ticks = date.ticks;
        var GMT = date.dateFormat('TZD');
       
        return ('/Date(' + ticks + GMT + ')/');*/
       
        var reISO = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/;
        var a = reISO.exec(value);
        if (a) {
            var val = '/Date(' + new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6])).getTime() + ')/';
            this[key] = val;
            return val;
        }

 

    },

    toISO: function(date) {
        return date.dateFormat('Y-m-d H:i:s', (date.dateFormat('U') - 24 * 3600));
    },
   
    toISOShort: function(date) {
        return date.dateFormat(Date.patterns.ISO8601Short);
    },
   
    /*
     * Parse dates string that are in ISO or WCF formats into a Javascript date object
     */
    parseWcfDateString: function(value){
        /*
        var date = jsonDateString.replace(
            new RegExp('/Date\\((-?[0-9]+)(?:[a-zA-Z]|(?:\\+|-)[0-9]{4})?\\)/', 'g'),
            '(new Date($1))'
        );
        return eval(date);
        */
        var reISO = /^(\d{4})-(\d{2})-(\d{2})T(\d{2}):(\d{2}):(\d{2}(?:\.\d*)?)Z$/;
        var reMsAjax = /^\/Date\((d|-|.*)\)[\/|\\]$/;

        var a = reISO.exec(value);
        if (a)
            return new Date(Date.UTC(+a[1], +a[2] - 1, +a[3], +a[4], +a[5], +a[6]));
           
        a = reMsAjax.exec(value);
        if (a) {
            var b = a[1].split(/[-+,.]/);
           
            var dateTicks = b[0];
                   
            try {
               
                var dateValue = parseInt(b[0]);  // In milliseconde
                // var hourGmt = parseInt(b[1].substring(1))*60*60*10; // In milliseconde GMT + "0200"   Deux heures
               
                dateTicks = (dateValue /*+ hourGmt*/).toString();
               
            }catch(exc){
           
            }
           
            return new Date(dateTicks ? +dateTicks : 0 - +b[1]);
        }

    },

    /*JSON2ISO: function(jsonDate) {
        var dt = DateHelper.parseJSON(jsonDate);
       
        return DateHelper.toISO(dt);
    },*/
   
    /*ISO2JSON: function(isoDate) {
        // REVIEW : to finish
        var dt = new Date(isoDate);
       
        return DateHelper.toJSON(dt);
    },*/
   
    /*
     * DConverts date from the JSON format to the "\/Date(1256857200000+0100)\/"
     */
    JSON2ISO: function(o) {
        /*var saved = o;
        try {*/
       
            if (isUndefinedOrNull(o)) return o;
           
            if (typeof(o) == 'string') {
                if (o.contains('/Date(') ) {
                    // reformat the date to ISO
                    //o = DateHelper.JSON2ISO(o);
                   
                    var dt = DateHelper.parseWcfDateString(o); //Date.parseDate(o, 'M$') ; //DateHelper.parseJSON(o);
                   
                    if (! isUndefinedOrNull(dt) )
                        o = dt.format(Date.patterns.SortableDateTime); //DateHelper.toISO(dt);
                }
               
            }
            else
            {
                if (Ext.isArray(o)) {
                    // array
                    for(var i=0; i< o.length; i++) {
                        if (isDefined(o[i])) o[i] = DateHelper.JSON2ISO(o[i]);
                    }
                }
                else
               
                if (typeof(o) == 'object') {
                    // simple object
                    for(var att in o) {
                        var attValue = o[att];
                        if (isUndefinedOrNull(attValue)) continue;
                        else
                        {
                       
                            if (typeof(attValue) == 'function')
                                continue;
                       
                            // else, if object, recursively loop in properties
                            o[att] = DateHelper.JSON2ISO(attValue);
                           
                        }
                    }
                }
            }
           
        /*} catch(ex) {
           
            o = saved;
        }*/
        return o;
    }

}

 

这个函数不错哦 用来获取触发onclick 的element,而且兼容至少3种浏览器

getEventTarget:function(evt) {
            evt = evt || event;
            var target;
            if (evt.target) {
                target = evt.target;
            }
            if (evt.srcElement) {
                target = evt.srcElement;
            }
            // defeat Safari bug
            if (target.nodeType == 3) {
                target = target.parentNode;
            }
            return target;
            //return (dojo.isIE) ? evt.srcElement : evt.target;
        }

 

javascrip date convert Useful ^_^

result[i].Date 格式:"2010-12-20T00:00:00"

var month = result[i].Date.substring(5, 7);
var day = result[i].Date.substring(8, 10);
var year = result[i].Date.substring(0, 4);
date = new Date(month + '/' + day + '/' + year);
date = date.format('d-m-Y');
                                 

 

 

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/yubuaishui/archive/2010/12/31/1921072.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值