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

js日期操作类

/**
* Date time format string define.
*/
Date.Format = {
    FORMAT1: "yyyy/MM/dd HH:mm:ss",
    FORMAT2: "yyyy-MM-dd HH:mm:ss",
    FORMAT3: "yyyyMMddHHmmss"
};

/**
* Convert a date time string to a date object,<br>
* The acceptable format is like "yyyy-MM-dd HH:mm:ss" or "yyyy/MM/dd HH:mm:ss" or "yyyyMMddHHmmss"
*/
Date.toDate = function(dateTimeString){
    if (!dateTimeString) return new Date();
    dateTimeString = dateTimeString.replace(/-/, "/");
    if (dateTimeString.indexOf("/") == -1) {
    dateTimeString = dateTimeString.substr(0, 4) + "/"
    + dateTimeString.substr(4, 2) + "/" + dateTimeString.substr(6, 2)
    + " " + dateTimeString.substr(8, 2) + ":"
    + dateTimeString.substr(10, 2) + ":" + dateTimeString.substr(12, 2);
    }
    return new Date(dateTimeString);
};

String.prototype.trim = function() {
    return this.replace(/(^\s+)|(\s+$)/g, "");
};

/**
* Add a format method to the Date class.
*/
Date.prototype.format = function(formatStr){
    var dateStr = formatStr ? formatStr : Date.Format.FORMAT3;
    dateStr = dateStr.replace(/yyyy|YYYY/, this.getFullYear())
              .replace(/yy|YY/, (this.getYear() % 100) > 9 ?
              (this.getYear() % 100).toString() : '0' + (this.getYear() % 100));
    var month = this.getMonth() + 1;
    dateStr = dateStr.replace(/MM/,
        month > 9 ? month.toString() : '0' + month).replace(/M/g, month);
    dateStr = dateStr.replace(/dd|DD/,
        this.getDate() > 9 ? this.getDate().toString()
        : '0' + this.getDate()).replace(/d|D/g, this.getDate());
    dateStr = dateStr.replace(/hh|HH/,
        this.getHours() > 9 ? this.getHours().toString()
        : '0' + this.getHours()).replace(/h|H/g, this.getHours());
    dateStr = dateStr.replace(/mm/,
        this.getMinutes() > 9 ? this.getMinutes().toString()
        : '0' + this.getMinutes()).replace(/m/g, this.getMinutes());
    dateStr = dateStr.replace(/ss|SS/,
        this.getSeconds() > 9 ? this.getSeconds().toString()
        : '0' + this.getSeconds()).replace(/s|S/g, this.getSeconds());
    return dateStr;
};