# 日期操作
import {DateTool} from 'sjfx'
# parse将字符串转换成Date类型
parse(str):Date
该方法主要用于将后台返回的日期字符串转为Date对象。支持如下格式:
2018/01/08 12:00:00
2018-01-08T12:00:00.4234
2018-01-08
2018/01/08
str为空时或转换失败时,返回当前系统时间
# maxDayOfMonth(year, month)
获取指定月份的天数
# timeSlot(type) 获取时间段
type可选值:
上月、lastMonth、lm
本月、thisMonth、tm
本周、thisWeek、tw
上周、lastWeek、lw
今年、thisYear、ty
返回值是一个对象,如:
{
"start": "2018-01-01",
"end": "2018-12-31"
}
# 周操作
# getWeekNo(date)
计算日期属于一年当中的第多少周
date:Date,日期,默认为当天
以周一至周日为一周。如果1月1日是周日,这一天返回0
# weekNoToDate(weekNo,year)
获取一年当中的某一周的开始日期
weekNo:Number,周数
year:Number,年份,默认为当前年份
# dateToWeekText(date)
显示指定日期所对应的起止日期 date:Date,日期,默认为当天
DateTool.dateToWeekText(new Date())
// 2018年04月23日——04月29日
# timeDiff 计算时间差
timeDiff(start, end, showTime)
start:Date,开始时间,必传
end:Date,结束时间,必传
showTime:Boolean,是否显示时间部分,默认为true
DateTool.timeDiff(new Date(2018,1,13,12,12,23),new Date(2018,2,23,21,22,45))
//38天9小时10分钟22秒
# tsToDate 时间戳转Date
同时支持10位和13位时间戳
import {DateTool} from 'sjfx';
DateTool.tsToDate(1551234567);
# addOneDay
需求背景:搜索条件中,包含时间段的时候,需要将结束时间加1天以后,再传递到后端。
该方法支持多种调用方式
import {DateTool} from 'sjfx';
const now = new Date();//假定:now为2018-06-05 14:00:00
以下几种调用方式都是返回字符串:2018-06-06 14:00:00
console.log(DateTool.addOneDay(now));//now的值不变
console.log(DateTool.addOneDay('2018-06-05 14:00:00'));//标准日期字符串
console.log(DateTool.addOneDay(now.valueOf()));//13位时间错
console.log(DateTool.addOneDay(now.valueOf()/1000));//10位时间戳
以下两种方式均返回:{endDate: "2018-06-06 14:00:00"}
,且不影响原对象
DateTool.addOneDay({endDate: now}, 'endDate');
DateTool.addOneDay({endDate: now}, ['endDate']);
# 实例
Ajax.post(Api, DateTool.addOneDay(formData, 'endDate'))
Ajax.post(Api,{
stateTime:formData.stateTime,
endTime:DateTool.addOneDay(formData.endTime)
})
this.sendRecord.$beforeSearch=($searchPara)=>{
if(this.timeCopy.length>0){
$searchPara.start=this.timeCopy[0];
$searchPara.end=DateTool.addOneDay(this.timeCopy[1]);
}
}
# showDistance
显示指定日期已过去时间 一般用于显示评论时间
import {DateTool} from 'sjfx';
DateTool.showDistance(new Date());
# convertTime
将对象中所有以date或time结尾的时间戳自动转为Date数据。 同时支持10位(精确到秒)或13位(精确到毫秒)时间戳
import {convertTime} from 'sjfx';
const data={
addTime:1531234567
}
//使用方法一
convertTime(data);
//addTime已经转为了Date类型
//使用方法二
convertTime(data,'yyyy-MM-dd');
//addTime转为了Date类型,并自动格式化
← Cache Delay:延迟处理 →