zent
Version:
一套前端设计语言和基于React的实现
43 lines (36 loc) • 1.29 kB
text/typescript
import { parse } from './fecha';
import { zhCN } from '../../i18n/time-locale';
/**
* 解析日期,字符串转化为日期
* @memberof module:date
* @param date 需要解析的 date,默认应该传入字符串,但对下面两个情况也做了兼容:
* - 如果传入Date的实例则直接返回这个实例;
* - 如果传入时间戳数字,则返回 new Date(date) 函数调用后的值;
* @param mask 解析的格式
* @param locale i18n 的设置,默认为 zhCN
* @see {@link https://github.com/taylorhakes/fecha#parsing|parse文档}
* @returns {date} 转化后的日期
* @example
* parseDate('February 3rd, 2014', 'MMMM Do, YYYY'); // new Date(2014, 1, 3)
* parseDate('10-12-10 14:11:12', 'YY-MM-DD HH:mm:ss'); // new Date(2010, 11, 10, 14, 11, 12)
* parseDate('5/3/98', 'shortDate'); // new Date(1998, 4, 3)
* parseDate('November 4, 2005', 'longDate'); // new Date(2005, 10, 4)
*/
export default function parseDate(
date: string | number | Date,
mask = 'default',
locale = zhCN
): Date {
if (date instanceof Date) {
return new Date(date.getTime());
}
if (typeof date === 'number') {
return new Date(date);
}
mask = mask || 'default';
const ret = parse(date, mask, locale);
if (!ret) {
return null;
}
return ret;
}