功能描述
获取本周、本季度、本月、上月、最近30天,本年的开始日期、结束日期
根据年月获取某月的开始日期、结束日期
根据类型获取默认的开始日期、结束日期 getDefaultTime(type)默认时间的取值规则 1上个月 2当前月 3无
完整代码
var now = new Date();
var nowDayOfWeek = now.getDay();
var nowDay = now.getDate();
var nowMonth = now.getMonth();
var nowYear = now.getYear();
nowYear += (nowYear < 2000) ? 1900 : 0;
var lastMonthDate = new Date();
lastMonthDate.setDate(1);
lastMonthDate.setMonth(lastMonthDate.getMonth()-1);
var lastYear = lastMonthDate.getYear();
var lastMonth = lastMonthDate.getMonth();
function formatDate(date) {
var myyear = date.getFullYear();
var mymonth = date.getMonth()+1;
var myweekday = date.getDate();
if(mymonth < 10){
mymonth = "0" + mymonth;
}
if(myweekday < 10){
myweekday = "0" + myweekday;
}
return (myyear+"-"+mymonth + "-" + myweekday);
}
export function parseTime(time, cFormat) {
if (arguments.length === 0) {
return null
}
const format = cFormat || '{y}-{m}-{d} {h}:{i}:{s}'
let date
if (typeof time === 'undefined' || time === null || time === 'null') {
return ''
} else if (typeof time === 'object') {
date = time
} else {
if ((typeof time === 'string') && (/^[0-9]+$/.test(time))) {
time = parseInt(time)
}
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]
if (key === 'a') { return ['日', '一', '二', '三', '四', '五', '六'][value ] }
if (result.length > 0 && value < 10) {
value = '0' + value
}
return value || 0
})
return time_str
}
var getCurrentDate = new Date(nowYear, nowMonth, nowDay);
var getCurrentDate = formatDate(getCurrentDate)
var getYesterdayDate = new Date(nowYear, nowMonth, nowDay - 1);
var getYesterdayDate = formatDate(getYesterdayDate);
function getMonthDays(myMonth){
var monthStartDate = new Date(nowYear, myMonth, 1);
var monthEndDate = new Date(nowYear, myMonth + 1, 1);
var days = (monthEndDate - monthStartDate)/(1000 * 60 * 60 * 24);
return days;
}
function getQuarterStartMonth(){
var quarterStartMonth = 0;
if(nowMonth<3){
quarterStartMonth = 0;
}
if(2<nowMonth && nowMonth<6){
quarterStartMonth = 3;
}
if(5<nowMonth && nowMonth<9){
quarterStartMonth = 6;
}
if(nowMonth>8){
quarterStartMonth = 9;
}
return quarterStartMonth;
}
function getWeekStartDate() {
var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek);
return formatDate(weekStartDate);
}
function getWeekEndDate() {
var weekEndDate = new Date(nowYear, nowMonth, nowDay + (6 - nowDayOfWeek));
return formatDate(weekEndDate);
}
export function getMonthStartDate(){
var monthStartDate = new Date(nowYear, nowMonth, 1);
return formatDate(monthStartDate);
}
function getMonthEndDate(){
var monthEndDate = new Date(nowYear, nowMonth, getMonthDays(nowMonth));
return formatDate(monthEndDate);
}
function getCertainMonthStartDate(yy,mm){
var monthStartDate = new Date(yy, mm, 1);
return formatDate(monthStartDate);
}
function getCertainMonthEndDate(yy,mm){
var monthEndDate = new Date(yy, mm, getMonthDays(mm));
return formatDate(monthEndDate);
}
export function getLastMonthStartDate(){
var lastMonthStartDate = new Date(nowYear, lastMonth, 1);
return formatDate(lastMonthStartDate);
}
export function getLastMonthEndDate(){
var lastMonthEndDate = new Date(nowYear, lastMonth, getMonthDays(lastMonth));
return formatDate(lastMonthEndDate);
}
function getQuarterStartDate(){
var quarterStartDate = new Date(nowYear, getQuarterStartMonth(), 1);
return formatDate(quarterStartDate);
}
function getQuarterEndDate(){
var quarterEndMonth = getQuarterStartMonth() + 2;
var quarterStartDate = new Date(nowYear, quarterEndMonth, getMonthDays(quarterEndMonth));
return formatDate(quarterStartDate);
}
export function defaultLastSanShi(){
const end = new Date()
const start = new Date()
start.setTime(start.getTime() - 3600 * 1000 * 24 * 30)
return [parseTime(start),parseTime(end)]
}
export function getCurrenMonthStartAndEndDate(){
const start = getMonthStartDate()
const end = now
return [parseTime(start,"{y}-{m}-{d} 00:00:00"),parseTime(end,"{y}-{m}-{d} 23:59:59")];
}
export function getLastMonthStartAndEndDate(){
const start = getLastMonthStartDate()
const end = getLastMonthEndDate()
return [parseTime(start,"{y}-{m}-{d} 00:00:00"),parseTime(end,"{y}-{m}-{d} 23:59:59")];
}
export function getYearFirstDay() {
return nowYear + '-01-01'
}
export function byYearMonthGetStartAndEndDate(prm){
console.log(prm)
let arr=prm.split("-")
let yy=parseInt(arr[0])
let mm=parseInt(arr[1])-1
const start = getCertainMonthStartDate(yy,mm)
const end = getCertainMonthEndDate(yy,mm)
return [parseTime(start,"{y}-{m}-{d} 00:00:00"),parseTime(end,"{y}-{m}-{d} 23:59:59")];
}
export function byYearGetStartAndEndDate(prm){
const start = prm+'-01-01'
const end = prm+'-12-31'
return [parseTime(start,"{y}-{m}-{d} 00:00:00"),parseTime(end,"{y}-{m}-{d} 23:59:59")];
}
export function getDefaultTime(type){
let _time
if(type=1){
_time = getLastMonthStartAndEndDate()
}else if(type=2){
_time = getCurrenMonthStartAndEndDate()
}else if(type=3){
_time=''
}
return _time
}
export const defaultTime= getDefaultTime()