@alicloud/console-base-intl-factory-basic
Version:
ConsoleBase Intl Factory Basic, Pure Text, No JSX
33 lines (32 loc) • 1.08 kB
JavaScript
import { forEach as _forEach } from 'lodash-es';
/**
* 当 Intl.DateTimeFormat 失败时的兜底方法
*/
export default function formatDateFallback(d) {
var format = arguments.length > 1 && arguments[1] !== undefined ? arguments[1] : 'YYYY-MM-DD HH:mm:ss';
/**
* 借鉴 moment
* - `年Y月M日D季Q周W` 等大头都是大写的
* - `时hH分m秒s` 都是小写的(时的话用大写的 H 表示 24 小时制)
* - 毫秒是 S
*/
var o = {
'Q+': Math.floor((d.getMonth() + 3) / 3),
'M+': d.getMonth() + 1,
'D+': d.getDate(),
'H+': d.getHours(),
'm+': d.getMinutes(),
's+': d.getSeconds(),
S: d.getMilliseconds()
};
var pattern = format;
if (/(Y+)/.test(pattern)) {
pattern = pattern.replace(RegExp.$1, "".concat(d.getFullYear()).substring(4 - RegExp.$1.length));
}
_forEach(o, function (v, k) {
if (new RegExp("(".concat(k, ")")).test(pattern)) {
pattern = pattern.replace(RegExp.$1, RegExp.$1.length === 1 ? "".concat(v) : "00".concat(v).substring("".concat(v).length));
}
});
return pattern;
}