移动端时间兼容问题

全文本字符串格式: Wed Mar 25 2015 08:00:00 GMT+0800 (中国标准时间)
ISO 日期: 2019-03-28 12:02:00
格林尼治时间: 2001-07-04T12:08:56.235-0700
其中:2001-07-04T12:08:56.235Z,T表示后面开始的是时间,Z表示时区

在移动端开发时,经常遇到 格林尼治时间 和 ISO日期。
其中ISO日期在ios操作系统中,不支持new Date("2019-03-28 12:02:00"),我一般的处理方法是把-替换成/,new Date(value.replace(/-/g, '/'))。ios支持格林尼治时间。

我最近经常遇到两种时间,所以我写了一个通用方法。
/**
* 转换str值为日期字符串
* @param str
* @param pattern 格式字符串,例如:yyyy-MM-dd hh:mm:ss
* @returns {符合要求的日期字符串}
*/
function getFormatDateByString(str, pattern) {

    if (!str) {
        return getFormatDate(new Date(), pattern);
    }

    if (str.indexOf("T") < 0) {
        str = str.replace(/-/g, '/');
    }

    return getFormatDate(new Date(str), pattern);
}

/**
* 转换日期对象为日期字符串
* @param date 日期对象
* @param pattern 格式字符串,例如:yyyy-MM-dd hh:mm:ss
* @returns 符合要求的日期字符串
*/
function getFormatDate(date, pattern) {
if (!pattern) {
pattern = "yyyy-MM-dd hh:mm:ss";
}
return date.format(pattern);
}

你可能感兴趣的:(移动端时间兼容问题)