猫妈狗爸伴宠师小程序后端代码
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

221 lines
6.0 KiB

/**
* Created by lcx47996 on 2017/12/25.
*/
export function dateFormat(date, format) {
if (!date || date === 0) {
return ''
}
if (!(date instanceof Date)) {
date = new Date(date)
if (date.toString() === 'Invalid Date') {
return '无效时间戳'
}
}
format = format || 'yyyy-MM-dd hh:mm:ss'
const o = {
'M+': date.getMonth() + 1, // 月份
'd+': date.getDate(), // 日
'h+': date.getHours(), // 小时
'm+': date.getMinutes(), // 分
's+': date.getSeconds(), // 秒
'q+': Math.floor((date.getMonth() + 3) / 3), // 季度
'S': date.getMilliseconds() // 毫秒
};
if (/(y+)/.test(format)) {
format = format.replace(RegExp.$1, (date.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (const k in o) {
if (new RegExp('(' + k + ')').test(format)) {
format = format.replace(RegExp.$1, (RegExp.$1.length === 1) ? (o[k]) : (('00' + o[k]).substr(('' + o[k]).length)));
}
}
return format;
}
function getAfterDate(after) {
var dd = new Date();
dd.setDate(dd.getDate() + after);// 获取AddDayCount天后的日期
var y = dd.getFullYear();
var m = dd.getMonth() + 1;// 获取当前月份的日期
var d = dd.getDate();
return y + '-' + m + '-' + d;
}
function getAfterDateReturnDate(datetime, after) {
if (!(datetime.type instanceof Date)) {
return datetime
}
var r = new Date(datetime.getTime())
r.setDate(datetime.getDate() + after);// 获取AddDayCount天后的日期
return r;
}
function getAfterHourReturnDate(datetime, after) {
if (!(datetime.type instanceof Date)) {
return datetime
}
var r = new Date(datetime.getTime() + after * 60 * 60 * 1000)
return r;
}
function getAfterMounth(date, after) {
var dd = new Date();
dd.setMonth(dd.getMonth() + after);// 获取AddDayCount天后的日期
var y = dd.getFullYear();
var m = dd.getMonth() + 1;// 获取当前月份的日期
var d = dd.getDate();
return y + '-' + m + '-' + d;
}
/**
* 计算2个日期相差的天数,不包含今天,如:2016-12-13到2016-12-15,相差2天
*/
function dateDiff(startDate, endDate) {
return parseInt((endDate - startDate) / 1000 / 60 / 60 / 24);// 把相差的毫秒数转换为天数
}
/**
* 计算2个日期相差的天数,包含今天,如:2016-12-13到2016-12-15,相差3天
*/
function dateDiffIncludeToday(startDate, endDate) {
return parseInt((endDate - startDate) / 1000 / 60 / 60 / 24) + 1;// 把相差的毫秒数转换为天数
}
/**
* 获取凌晨时间
* @param day
*/
export function getMorningTime(day = 0) {
if (day == null) {
return null;
}
const timeStamp = new Date(new Date().setHours(0, 0, 0, 0)).getTime();
return new Date(timeStamp + day * 86400000);
}
export function getStartEnd(length) {
const end = getMorningTime(0);
const start = getMorningTime(0);
start.setTime(start.getTime() - 3600 * 1000 * 24 * length);
return {end, start};
}
function getTimeShort() {
const timeShort = [
{
text: '今天',
onClick(picker) {
const {end, start} = getStartEnd(0);
picker.$emit('pick', [start, end]);
}
},
{
text: '昨天',
onClick(picker) {
const time = getMorningTime(0);
time.setTime(time.getTime() - 3600 * 1000 * 24);
picker.$emit('pick', [time, time]);
}
},
{
text: '最近一周',
onClick(picker) {
const {end, start} = getStartEnd(7);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近一个月',
onClick(picker) {
const {end, start} = getStartEnd(30);
picker.$emit('pick', [start, end]);
}
}, {
text: '最近三个月',
onClick(picker) {
const {end, start} = getStartEnd(90);
picker.$emit('pick', [start, end]);
}
}
];
return timeShort;
}
function getTimeShort2(){
const timeShort = [
{
text: '今天',
onClick(picker) {
const temp = new Date();
picker.$emit('pick', [new Date(temp.setHours(0, 0, 0, 0)), new Date(temp.setHours(23, 59, 59, 0))]);
}
},
{
text: '昨天',
onClick(picker) {
const temp = new Date();
temp.setTime(temp.getTime() - 3600 * 1000 * 24);
picker.$emit('pick', [new Date(temp.setHours(0, 0, 0, 0)), new Date(temp.setHours(23, 59, 59, 0))]);
}
},
{
text: '前一周',
onClick(picker) {
const start = new Date();
const end = new Date();
start.setTime(end.getTime() - 3600 * 1000 * 24 * 6);
picker.$emit('pick', [new Date(start.setHours(0, 0, 0, 0)), new Date(end.setHours(23, 59, 59, 0))]);
}
},
{
text: '这个月',
onClick(picker) {
const end = getCurrentMonthLast();
const start = getCurrentMonthFirst();
picker.$emit('pick', [new Date(start.setHours(0, 0, 0, 0)), new Date(end.setHours(23, 59, 59, 0))]);
function getCurrentMonthFirst() {
let date = new Date();
date.setDate(1);
return date;
}
// 获取当前月的最后一天
function getCurrentMonthLast() {
let date = new Date();
let currentMonth = date.getMonth();
let nextMonth = ++currentMonth;
let nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
let oneDay = 1000 * 60 * 60 * 24;
return new Date(nextMonthFirstDay - oneDay);
}
}
},
{
text: '前一个月',
onClick(picker) {
const start = new Date();
const end = new Date();
start.setTime(end.getTime() - 3600 * 1000 * 24 * 29);
picker.$emit('pick', [new Date(start.setHours(0, 0, 0, 0)), new Date(end.setHours(23, 59, 59, 0))]);
}
}
]
return timeShort
}
export default {
'getAfterDate': getAfterDate,
'getAfterMounth': getAfterMounth,
'dateDiff': dateDiff,
'dateDiffIncludeToday': dateDiffIncludeToday,
'getAfterDateReturnDate': getAfterDateReturnDate,
'getAfterHourReturnDate': getAfterHourReturnDate,
getTimeShort,
getTimeShort2,
dateFormat,
getStartEnd,
getMorningTime
}