vue中获取一天的开始时间和结束时间,并且将时间格式化
封装时间格式化方法,新建一个format.js,代码如下
/**
* 日期转为字符串
* @param fmt
* @param date
* @returns {*}
*/
export const format=function(d,fmt){
var date = {
"M+": d.getMonth() + 1,
"d+": d.getDate(),
"h+": d.getHours(),
"m+": d.getMinutes(),
"s+": d.getSeconds(),
"q+": Math.floor((d.getMonth() + 3) / 3),
"S+": d.getMilliseconds()
};
if (/(y+)/i.test(fmt)) {
fmt = fmt.replace(RegExp.$1, (d.getFullYear() + '').substr(4 - RegExp.$1.length));
}
for (var k in date) {
if (new RegExp("(" + k + ")").test(fmt)) {
fmt = fmt.replace(RegExp.$1, RegExp.$1.length == 1
? date[k] : ("00" + date[k]).substr(("" + date[k]).length));
}
}
return fmt;
}
vue组件中使用,首先引入format.js
import {format} from '../format';//此处根据具体路径而定
然后在js中写相应的调用方法
/**
* 获取某一天的开始时间和结束时间
* @param date Date日期型
* @returns {*}
*/
getDayRange(date) {
let self=this;
var day = null;
if (date && date instanceof Date) {
var bYear = date.getFullYear(),
bMonth = date.getMonth() + 1,
bDay = date.getDate();
var str = bYear + "-" + bMonth + "-" + bDay;
var dayStart = Date.parse(str.replace(/-/g,"/"));
var dayEnd = new Date().setTime((dayStart / 1000 + 24 * 60 * 60 - 1) * 1000);
day = {
dayStart: self.formatTime(dayStart),
dayEnd: self.formatTime(dayEnd)
};
}
return day;
},
//格式化时间
formatTime(time){
let date=new Date(time);
return format(date,'yyyy-MM-dd hh:mm');
},
/**
* 获取本月第一天
* @returns {*}
*/
getCurrentMonthFirstDay() {
var b = new Date();
b.setDate(1);
return this.getDayRange(b);
},