34 lines
952 B
JavaScript
34 lines
952 B
JavaScript
/**
|
|
* Get Date info from user input, return null when input is invalid
|
|
*
|
|
* 从用户输入中获取日期信息,输入无效时返回 null
|
|
*/
|
|
export const getDate = (input) => {
|
|
if (input) {
|
|
if (typeof input === 'number')
|
|
return new Date(input);
|
|
const date = Date.parse(input.toString());
|
|
if (!Number.isNaN(date))
|
|
return new Date(date);
|
|
}
|
|
return null;
|
|
};
|
|
/**
|
|
* Date sorter from latest to oldest
|
|
*
|
|
* @description Invalid date will appear at last
|
|
*
|
|
* 最新到最旧的日期排序器
|
|
*
|
|
* @description 无效日期将出现在最后
|
|
*/
|
|
export const dateSorter = (valueA, valueB) => {
|
|
const dateA = getDate(typeof valueA === 'number' ? new Date(valueA) : valueA);
|
|
const dateB = getDate(typeof valueB === 'number' ? new Date(valueB) : valueB);
|
|
if (!dateA)
|
|
return dateB ? 1 : 0;
|
|
if (!dateB)
|
|
return -1;
|
|
return dateB.getTime() - dateA.getTime();
|
|
};
|