日期:2014-05-16  浏览次数:20387 次

java.util.Date与javascript中Date类型的转换

?????? 最近遇到一个问题,使用jquery从后台获取到一个java.util.Date类型的对象,该时间对象作为另一个对象的属性传入,需要在前台页面中格式化输出为“yyyy-MM-dd hh:mm:ss”的形式,试了多种方法,将最后解决的方法记录一下,方便以后使用。

?

1、首先,需要定义一个js方法,用于格式化javascript中Date类型为指定的字符串。

?

/**
 * 时间对象的格式化;
 */
Date.prototype.format = function (format) 
{
    /*
     * eg:format="YYYY-MM-dd hh:mm:ss";
     */
    var o = 
    {
        "M+" : this.getMonth() + 1, // month
        "d+" : this.getDate(), // day
        "h+" : this.getHours(), // hour
        "m+" : this.getMinutes(), // minute
        "s+" : this.getSeconds(), // second
        "q+" : Math.floor((this.getMonth() + 3)  / 3), // quarter
        "S" : this.getMilliseconds() // millisecond
    }
    if (/(y+)/.test(format)) 
    {
        format = format.replace(RegExp.$1, (this.getFullYear() + "") .substr(4 - RegExp.$1.length));
    }
    for ( var k in o) 
    {
        if (new RegExp("(" + k + ")").test(format)) 
        {
            format = format.replace(RegExp.$1, RegExp.$1.length == 1 ? o[k] : ("00" + o[k]).substr(("" + o[k]).length));
        }
    }
    return format;
}

?

2、获取到java总的Date对象,并转换为js中的Date对象。

?

var javaDate=‘<c:out value="${request.javaDate}"/>’;
var jsDate=new Date(javaDate.time);

?

?3、将jsDate类型转换为制定的字符串。

var dateStr=jsDate.format("yyyy-MM-dd hh:mm:ss");

?