# 日期操作

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类型,并自动格式化
Last Updated: 1/14/2020, 3:34:31 PM