123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136 |
- export const formatTime = date => {
- const year = date.getFullYear();
- const month = date.getMonth() + 1;
- const day = date.getDate();
- const hour = date.getHours();
- const minute = date.getMinutes();
- const second = date.getSeconds();
- return [year, month, day].map(formatNumber).join('/') + ' ' + [hour, minute, second].map(formatNumber).join(
- ':');
- };
- const formatNumber = n => {
- n = n.toString();
- return n[1] ? n : '0' + n;
- };
- export const getNowdate = date => {
- const year = date.getFullYear();
- const month = date.getMonth() + 1;
- const day = date.getDate();
- const hour = date.getHours();
- const minute = date.getMinutes();
- const second = date.getSeconds();
- return year + '-' + month + '-' + day;
- };
- /**
- * 日期格式化
- * @param { String | Objcet } time js 时间格式的字符串; java 时间格式的字符串; js 时间对象
- * @param { String } pattern day.js 的占位符字符
- * @returns String 格式化后的时间
- */
- export const parseTime = (time, pattern) => {
- if (arguments.length === 0 || !time) {
- return null
- }
- const format = pattern || '{y}-{m}-{d} {h}:{i}:{s}'
- let date
- if (typeof time === 'object') {
- date = time
- } else {
- if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
- time = parseInt(time)
- } else if (typeof time === 'string') {
- time = time.replace(new RegExp(/-/gm), '/').replace('T', ' ').replace(new RegExp(/\.[\d]{3}/gm), '');
- }
- if ((typeof time === 'number') && (time.toString().length === 10)) {
- time = time * 1000
- }
- date = new Date(time)
- }
- const formatObj = {
- y: date.getFullYear(),
- m: date.getMonth() + 1,
- d: date.getDate(),
- h: date.getHours(),
- i: date.getMinutes(),
- s: date.getSeconds(),
- a: date.getDay()
- }
- const time_str = format.replace(/{(y|m|d|h|i|s|a)+}/g, (result, key) => {
- let value = formatObj[key]
- // Note: getDay() returns 0 on Sunday
- if (key === 'a') {
- return ['日', '一', '二', '三', '四', '五', '六'][value]
- }
- if (result.length > 0 && value < 10) {
- value = '0' + value
- }
- return value || 0
- })
- return time_str
- }
- /**
- * @desc 格式化日期字符串
- * @param { Nubmer} - 时间戳
- * @returns { String } 格式化后的日期字符串
- */
- export function formatDate(timestamp) {
- // 补全为13位
- let arrTimestamp = (timestamp + '').split('');
- for (let start = 0; start < 13; start++) {
- if (!arrTimestamp[start]) {
- arrTimestamp[start] = '0';
- }
- }
- timestamp = arrTimestamp.join('') * 1;
- let minute = 1000 * 60;
- let hour = minute * 60;
- let day = hour * 24;
- let month = day * 30;
- let now = new Date().getTime();
- let diffValue = now - timestamp;
- // 如果本地时间反而小于变量时间
- if (diffValue < 0) {
- return '不久前';
- }
- // 计算差异时间的量级
- let monthC = diffValue / month;
- let weekC = diffValue / (7 * day);
- let dayC = diffValue / day;
- let hourC = diffValue / hour;
- let minC = diffValue / minute;
- // 数值补0方法
- let zero = function (value) {
- if (value < 10) {
- return '0' + value;
- }
- return value;
- };
- if (monthC > 4) {
- // 超过1年,直接显示年月日
- return (function () {
- let date = new Date(timestamp);
- return date.getFullYear() + '-' + zero(date.getMonth() + 1) + '-' + zero(date.getDate()) + '-';
- })();
- } else if (monthC >= 1) {
- return parseInt(monthC) + '月前';
- } else if (weekC >= 1) {
- return parseInt(weekC) + '周前';
- } else if (dayC >= 1) {
- return parseInt(dayC) + '天前';
- } else if (hourC >= 1) {
- return parseInt(hourC) + '小时前';
- } else if (minC >= 1) {
- return parseInt(minC) + '分钟前';
- }
- return '刚刚';
- }
|