@cainiaofe/cn-utils
Version:
菜鸟前端基础工具库
102 lines (101 loc) • 2.81 kB
JavaScript
// import * as i18nDefault from './default';
import { exec } from '../common/exec';
import { getLang } from '../common/utils';
export * from './type';
/**
* 根据语种信息获取日期格式化配置
* @param {TLanguage | boolean=} lang 语种
* @returns {DateFormatConf | null} 格式化对象
*/
export function getDateFormatConf(lang) {
lang = getLang(lang);
return exec('getDateFormatConf', {}, [lang]);
}
/**
* 将国际标准格式兑换成本地格式
* @param {StdFormat} stdFormat 标准格式
* @param {TLanguage | boolean=} lang 语种
* @returns {string | null}
*/
export function getDateFormatByStd(stdFormat, lang) {
lang = getLang(lang);
return exec('getDateFormatByStd', {}, [stdFormat, lang]);
}
/**
* 获取系统时区信息
* @returns {Timezone | null}
*/
export function getTimezone() {
return exec('getTimezone', {}, []);
}
/**
* 根据当前语种&时区格式化时间戳
* @param num Timestamp
* @param timezone Timezone
* @param format string | FormatAutoOpts
* @returns
*/
export function dateFormat(num, timezone, format) {
if (typeof format === 'object') {
var period = format.period || 's';
var lang = getLang(format.lang);
format = getDateFormatConf(lang)[period];
}
var opts = {
timezone: timezone || getTimezone(),
format: format,
};
return exec('dateFormat', {}, [num, opts]);
}
/**
* 根据当前语种&时区获取时间戳
* @param dateStr string
* @param timezone FormatOpts
* @param format string | FormatAutoOpts,
* @returns
*/
export function dateTimestamp(dateStr, timezone, format) {
if (typeof format === 'object') {
var period = format.period || 's';
var lang = getLang(format.lang);
format = getDateFormatConf(lang)[period];
}
var opts = {
timezone: timezone || getTimezone(),
format: format,
};
return exec('dateTimestamp', {}, [dateStr, opts]);
}
/**
* 根据时间戳获取当前日期偏移量
* @param num
* @param timezone
* @returns
*/
export function getTimezoneOffset(num, timezone) {
timezone = timezone || getTimezone();
return exec('getTimezoneOffset', {}, [num, timezone]);
}
/**
* 根据时间戳&时区&语种获取时区名称
* @param num
* @param timezone
* @param lang
* @returns
*/
export function getTimezoneName(num, timezone, lang) {
timezone = timezone || getTimezone();
lang = getLang(lang);
return exec('getTimezoneName', {}, [num, timezone, lang]);
}
/**
* 实例化时区 dayjs 对象
* @param day
* @param timezone
* @param keepLocalTime
* @returns 新的 dayjs 对象
*/
export function dayjsTz(day, timezone, keepLocalTime) {
timezone = timezone || getTimezone();
return exec('dayjsTz', {}, [day, timezone, keepLocalTime]);
}