Date.prototype.Format = function (fmt) {
var o = {
"M+": this.getMonth() + 1,
"d+": this.getDate(),
"h+": this.getHours(),
"m+": this.getMinutes(),
"s+": this.getSeconds(),
"q+": Math.floor((this.getMonth() + 3) / 3),
"S": this.getMilliseconds()
};
if (/(y+)/.test(fmt))
fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
for (var k in o)
if (new RegExp("(" + k + ")").test(fmt))
fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
return fmt;
}
function dateFormat(date) {
if (!date || typeof (date) === "string") {
this.error("参数异常,请检查...");
}
var y = date.getFullYear();
var m = date.getMonth() + 1;
var d = date.getDate();
return y + "-" + m + "-" + d;
}
function formatDate(value) {
if (value < 10) {
value = "0" + value;
}
return value;
}
function getFirstDayOfWeek(dd) {
var week = dd.getDay();
var minus = week ? week - 1 : 6;
dd.setDate(dd.getDate() - minus);
var y = dd.getFullYear();
var m = dd.getMonth() + 1;
var d = dd.getDate();
return y + "-" + formatDate(m) + "-" + formatDate(d);
}
function getStartAndEndOfCurrWeek() {
var d = new Date();
var year = d.getFullYear();
var month = parseInt(d.getMonth()) + 1;
var beginWhereTheTime = getFirstDayOfWeek(d);
var dd = new Date(beginWhereTheTime);
dd.setDate(dd.getDate() + 6);
var monthSunday = parseInt(dd.getMonth()) + 1;
var endWhereTheTime = dd.getFullYear() + "-" + formatDate(monthSunday) + "-" + formatDate(dd.getDate());
return {
"firstDate": beginWhereTheTime,
"lastDate": endWhereTheTime
}
}
function getAllDates(begin, end) {
var arr = [];
var ab = begin.split("-");
var ae = end.split("-");
var db = new Date();
db.setUTCFullYear(ab[0], ab[1] - 1, ab[2]);
var de = new Date();
de.setUTCFullYear(ae[0], ae[1] - 1, ae[2]);
var unixDb = db.getTime() - 24 * 60 * 60 * 1000;
var unixDe = de.getTime() - 24 * 60 * 60 * 1000;
for (var k = unixDb; k <= unixDe;) {
k = k + 24 * 60 * 60 * 1000;
arr.push((new Date(parseInt(k))).Format('yyyy-MM-dd'));
}
return arr;
}
function getAllDatesFormat(begin, end,fmt) {
var arr = [];
var ab = begin.split("-");
var ae = end.split("-");
var db = new Date();
db.setUTCFullYear(ab[0], ab[1] - 1, ab[2]);
var de = new Date();
de.setUTCFullYear(ae[0], ae[1] - 1, ae[2]);
var unixDb = db.getTime() - 24 * 60 * 60 * 1000;
var unixDe = de.getTime() - 24 * 60 * 60 * 1000;
for (var k = unixDb; k <= unixDe;) {
k = k + 24 * 60 * 60 * 1000;
arr.push((new Date(parseInt(k))).Format(fmt));
}
return arr;
}
function getFirstDayOfCurrentMonth() {
var now = new Date();
now.setDate(1);
var startDateStr = now.Format("yyyy-MM-dd");
return startDateStr;
}
function getCurrDate() {
var now = new Date();
var startDateStr = now.Format("yyyy-MM-dd");
return startDateStr;
}
function getFirstDayOfMonth(date) {
date.setDate(1);
return dateFormat(date);
}
function getFirstDayOfYear (date) {
date.setDate(1);
date.setMonth(0);
return dateFormat(date);
}
function getFirstDayOfSeason (date) {
var month = date.getMonth();
if(month <3 ){
date.setMonth(0);
}else if(2 < month && month < 6){
date.setMonth(3);
}else if(5 < month && month < 9){
date.setMonth(6);
}else if(8 < month && month < 11){
date.setMonth(9);
}
date.setDate(1);
return dateFormat(date);
}
function getStartEndOfQuarter(year,quarter) {
let startMonth = 1;
if(quarter == 1){
startMonth = 1;
}else if (quarter == 2){
startMonth = 4;
}else if (quarter == 3){
startMonth = 7;
}else if (quarter == 4){
startMonth = 10;
}
let endMonth = startMonth + 2;
if (quarter == 0){
endMonth = 12
}
const startDate = year+"-"+formatDate(startMonth)+'-01';
const endDate = year + '-' + formatDate(endMonth) + '-' +new Date(year,endMonth,0).getDate()
return {startDate,endDate}
}
function getLastMonthTime(date){
var daysInMonth = [0,31,28,31,30,31,30,31,31,30,31,30,31];
var strYear = date.getFullYear();
var strDay = date.getDate();
var strMonth = date.getMonth()+1;
if (((strYear % 4) === 0) && ((strYear % 100)!==0) || ((strYear % 400)===0)){
daysInMonth[2] = 29;
}
if(strMonth - 1 === 0)
{
strYear -= 1;
strMonth = 12;
}
else
{
strMonth -= 1;
}
strDay = Math.min(strDay,daysInMonth[strMonth]);
if(strMonth<10)
{
strMonth="0"+strMonth;
}
if(strDay<10)
{
strDay="0"+strDay;
}
var datastr = strYear+"-"+strMonth+"-"+strDay;
return datastr;
}
function getPreMonth(date) {
var arr = date.split('-');
var year = arr[0];
var month = arr[1];
var day = arr[2];
var days = new Date(year, month, 0);
days = days.getDate();
var year2 = year;
var month2 = parseInt(month) - 1;
if (month2 == 0) {
year2 = parseInt(year2) - 1;
month2 = 12;
}
var day2 = day;
var days2 = new Date(year2, month2, 0);
days2 = days2.getDate();
if (day2 > days2) {
day2 = days2;
}
if (month2 < 10) {
month2 = '0' + month2;
}
var t2 = year2 + '-' + month2 + '-' + day2;
return t2;
}
function getNextMonth(date) {
var arr = date.split('-');
var year = arr[0];
var month = arr[1];
var day = arr[2];
var days = new Date(year, month, 0);
days = days.getDate();
var year2 = year;
var month2 = parseInt(month) + 1;
if (month2 == 13) {
year2 = parseInt(year2) + 1;
month2 = 1;
}
var day2 = day;
var days2 = new Date(year2, month2, 0);
days2 = days2.getDate();
if (day2 > days2) {
day2 = days2;
}
if (month2 < 10) {
month2 = '0' + month2;
}
var t2 = year2 + '-' + month2 + '-' + day2;
return t2;
}
function getLastDay(year,month) {
var new_year = year;
var new_month = month++;
if(month>12) {
new_month -=12;
new_year++;
}
var new_date = new Date(new_year,new_month,1);
return (new Date(new_date.getTime()-1000*60*60*24)).getDate();
}
function getLastDate(year,month) {
var new_year = year;
var new_month = month;
if(month>12) {
new_month -=12;
new_year++;
}
var new_date = new Date(new_year,new_month,1);
return year+"-"+formatDate(month)+"-"+formatDate((new Date(new_date.getTime()-1000*60*60*24)).getDate());
}
function getFirstDay(year,month) {
return year+"-"+formatDate(month)+"-01"
}
function getNumOfWeeks(year) {
var startDateOfYear = new Date(year, 0, 1);
var daysOfYear = ((year % 4 == 0 && year % 100 != 0) || year % 400 == 0) ? 366 : 365;
var weekNum = 53;
if (startDateOfYear.getDay() == 0 && daysOfYear == 366) {
weekNum = 54;
}
return weekNum;
}
function weekDateOfYear(year,weekNo){
let oneday = new Date(year+'-01-01').getDay()
if(oneday==0){
oneday = 7
}
let one_fistday;
let one_lastday;
if(oneday == 1){
one_fistday = year+'-01-01'
one_lastday = year+'-01-07'
}else{
let jj = 8-oneday
one_fistday = (year-1)+'-12-'+(31-oneday+2>9?31-oneday+2:'0'+(31-oneday+2))
one_lastday = year+'-01-'+(jj>9?jj:'0'+jj)
}
let fistday;
let lastday;
if(weekNo ==1){
fistday = one_fistday
lastday = one_lastday
}else{
fistday = addDate(one_lastday,(weekNo-2)*7+1)
lastday = addDate(one_lastday,(weekNo-1)*7)
}
return [fistday,lastday]
}
function addDate(date,days){
var d=new Date(date);
d.setDate(d.getDate()+days);
var m=d.getMonth()+1;
return d.getFullYear()+'-'+(m>9?m:'0'+m)+'-'+(d.getDate()>9?d.getDate():'0'+d.getDate());
}
var getMonthWeek = function (a, b, c) {
var date = new Date(a, parseInt(b) - 1, c),
w = date.getDay(),
d = date.getDate();
if(w==0){
w=7;
}
var config={
getMonth:date.getMonth()+1,
getYear:date.getFullYear(),
getWeek:Math.ceil((d + 6 - w) / 7),
}
return config;
};
var getYearWeek = function(a, b, c)
{
var date1 = new Date(a, parseInt(b) - 1, c),
date2 = new Date(a, 0, 1),
d = Math.round((date1.valueOf() - date2.valueOf()) / 86400000);
return Math.ceil((d + ((date2.getDay() + 1) - 1)) / 7);
};
function getWeek(dt){
let d1 = new Date(dt);
let d2 = new Date(dt);
d2.setMonth(0);
d2.setDate(1);
let rq = d1-d2;
let days = Math.ceil(rq/(24*60*60*1000));
let num = Math.ceil(days/7);
return num;
}
function getCurrYearWeek(){
var now = new Date().Format('yyyy-MM-dd');
return getWeek(now)
}
function getTimeList(num){
var list = []
var date=new Date();
date.setMinutes(0);
date.setHours(0);
list.push(date.Format('hh:mm'))
for (let i = 0; i < 3600; i++) {
date.setMinutes(date.getMinutes()+num);
list.push(date.Format('hh:mm'))
if (date.getDay() > new Date().getDay()){
break;
}
}
list.pop();
return list;
}