'use strict';

Object.defineProperty(exports, "__esModule", {
    value: true
});
exports.dateFormat = dateFormat;
function dateFormat(date) {
    var fmt = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'YYYY-MM-DD HH:mm:ss';

    if (date === null || date === undefined || date === '') return;
    if (Object.prototype.toString.call(date) === '[object Date]') {
        date = new Date(date);
    } else if (typeof date === 'string') {
        date = date.replace(/-/g, '/');
        date = new Date(date);
    } else if (typeof date === 'number') {
        date = new Date(date);
    } else {
        console.error('[sinosun-ui] dateFormat 参数不是有效的时间格式。');
        return;
    }
    var o = {
        'M+': date.getMonth() + 1,
        'D+': date.getDate(),
        'h+': date.getHours() % 12 === 0 ? 12 : date.getHours() % 12,
        'H+': date.getHours(),
        'm+': date.getMinutes(),
        's+': date.getSeconds(),
        'q+': Math.floor((date.getMonth() + 3) / 3),
        S: date.getMilliseconds()
    };
    var week = {
        '0': '\u65E5',
        '1': '\u4E00',
        '2': '\u4E8C',
        '3': '\u4E09',
        '4': '\u56DB',
        '5': '\u4E94',
        '6': '\u516D'
    };
    if (/(Y+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
    }
    if (/(E+)/.test(fmt)) {
        fmt = fmt.replace(RegExp.$1, (RegExp.$1.length > 1 ? RegExp.$1.length > 2 ? '\u661F\u671F' : '\u5468' : '') + week[date.getDay() + '']);
    }
    for (var k in o) {
        if (new RegExp('(' + k + ')').test(fmt)) {
            fmt = fmt.replace(RegExp.$1, RegExp.$1.length === 1 ? o[k] : ('00' + o[k]).substr(('' + o[k]).length));
        }
    }
    return fmt;
}