DateUtils

命名空间

DateUtils

说明:
  • 日期常用函数库 Excel日期时间与js日期时间的互转 日期的加减操作 日期格式化等
作者:
  • 郑广学 2023.9.10 微信公众号EXCEL880 官网vbayyds.com

函数:

z转表格日期(jsdate) → {Number}

说明:
  • 这个函数用于将JavaScript日期对象转换为Excel表格日期格式
别名:
  • toExcelDate
参数列表:
参数名称 参数类型 备注
jsdate Date 要转换的JavaScript日期对象
返回值:
返回转换后的Excel表格日期格式
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05');
var excelDate = DateUtils.z转表格日期(jsdate);
console.log(excelDate); // 转换后的Excel表格日期格式
//输出结果
45179.836805555598

toExcelDate(jsdate) → {Number}

说明:
  • 这个函数用于将JavaScript日期对象转换为Excel日期格式
别名:
  • z转表格日期
参数列表:
参数名称 参数类型 备注
jsdate Date 要转换的JavaScript日期对象
返回值:
返回转换后的Excel日期格式
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05');
var excelDate = DateUtils.toExcelDate(jsdate);
console.log(excelDate); // 转换后的Excel表格日期格式
//输出结果
45179.836805555598

z日期格式化(jsdate, fmt) → {String}

说明:
  • 这个函数用于格式化JavaScript日期对象为指定格式的字符串
别名:
  • format
参数列表:
参数名称 参数类型 备注
jsdate Date 要格式化的JavaScript日期对象
fmt string 指定的日期格式字符串 y-年 M-月,d-日 时-H 分-m 秒-s 毫秒-SSS 星期-aaa
返回值:
返回格式化后的日期字符串
Type
String
例子
var jsdate=new Date('2023-9-10 20:05:11');
var fmt='yyyy月MM月dd日 HH:mm_ss';   //y-年 M-月,d-日 时-H 分-m 秒-s 毫秒-SSS 星期-aaa
var formattedDate = DateUtils.z日期格式化(jsdate, fmt);
console.log(formattedDate); // 格式化后的日期字符串
//输出结果
2023月09月10日 20:05_11

format(jsdate, fmt) → {String}

说明:
  • 这个函数用于格式化JavaScript日期对象为指定格式的字符串
别名:
  • z日期格式化
参数列表:
参数名称 参数类型 备注
jsdate Date 要格式化的JavaScript日期对象
fmt string 指定的日期格式字符串 y-年 M-月,d-日 时-H 分-m 秒-s 毫秒-SSS 星期-aaa
返回值:
返回格式化后的日期字符串
Type
String
例子
var jsdate=new Date('2023-9-10 20:05:11');
var fmt='yyyy月MM月dd日 HH:mm_ss';   //y-年 M-月,d-日 时-H 分-m 秒-s 毫秒-SSS 星期-aaa
var formattedDate = DateUtils.format(jsdate, fmt);
console.log(formattedDate); // 格式化后的日期字符串
//输出结果
2023月09月10日 20:05_11

z加天(jsdate, days) → {Date}

说明:
  • 这个函数用于在指定日期上添加指定天数
别名:
  • addDays
参数列表:
参数名称 参数类型 备注
jsdate Date 要添加天数的JavaScript日期对象
days number 要添加的天数
返回值:
返回添加天数后的JavaScript日期对象
Type
Date
例子
var jsdate=new Date('2023-9-10 20:05:11');
var newDate = DateUtils.z加天(jsdate, 5);  // 添加5天后的JavaScript日期对象
console.log(newDate.format()); 
//输出结果
2023-09-15 20:05:11

addDays(jsdate, days) → {Date}

说明:
  • 这个函数用于在指定日期上添加指定天数
别名:
  • z加天
参数列表:
参数名称 参数类型 备注
jsdate Date 要添加天数的JavaScript日期对象
days number 要添加的天数
返回值:
返回添加天数后的JavaScript日期对象
Type
Date
例子
var jsdate=new Date('2023-9-10 20:05:11');
var newDate = DateUtils.addDays(jsdate, 5);  // 添加5天后的JavaScript日期对象
console.log(newDate.format()); 
//输出结果
2023-09-15 20:05:11

z加时间(jsdate, t) → {Date}

说明:
  • 这个函数用于在指定日期上添加指定时间
别名:
  • addTimes
参数列表:
参数名称 参数类型 备注
jsdate Date 要添加时间的JavaScript日期对象
t string 要添加的时间 按字符串格式 '1:10:15'
返回值:
返回添加时间后的JavaScript日期对象
Type
Date
例子
var jsdate=new Date('2023-9-10 20:05:11');
var newDate = DateUtils.z加时间(jsdate, "1:00:00");
console.log(newDate.format()); 
//输出结果
2023-09-10 21:05:11

addTimes(jsdate, t) → {Date}

说明:
  • 这个函数用于在指定日期上添加指定时间
别名:
  • z加时间
参数列表:
参数名称 参数类型 备注
jsdate Date 要添加时间的JavaScript日期对象
t string 要添加的时间 按字符串格式 '1:10:15'
返回值:
返回添加时间后的JavaScript日期对象
Type
Date
例子
var jsdate=new Date('2023-9-10 20:05:11');
var newDate = DateUtils.addTimes(jsdate, "1:00:00");
console.log(newDate.format()); 
//输出结果
2023-09-10 21:05:11

z加月(jsdate, m) → {Date}

说明:
  • 这个函数用于在指定日期上添加指定月份
别名:
  • addMonths
参数列表:
参数名称 参数类型 备注
jsdate Date 要添加月份的JavaScript日期对象
m number 要添加的月份
返回值:
返回添加月份后的JavaScript日期对象
Type
Date
例子
var jsdate=new Date('2023-9-10 20:05:11');
var newDate = DateUtils.z加月(jsdate, 4);
console.log(newDate.format()); 
//输出结果
2024-01-10 20:05:11

addMonths(jsdate, m) → {Date}

说明:
  • 这个函数用于在指定日期上添加指定月份
别名:
  • z加月
参数列表:
参数名称 参数类型 备注
jsdate Date 要添加月份的JavaScript日期对象
m number 要添加的月份
返回值:
返回添加月份后的JavaScript日期对象
Type
Date
例子
var jsdate=new Date('2023-9-10 20:05:11');
var newDate = DateUtils.addMonths(jsdate, 4);
console.log(newDate.format()); 
//输出结果
2024-01-10 20:05:11

z加年(jsdate, y) → {Date}

说明:
  • 这个函数用于在指定日期上添加指定年份
别名:
  • addYears
参数列表:
参数名称 参数类型 备注
jsdate Date 要添加年份的JavaScript日期对象
y number 要添加的年份
返回值:
返回添加年份后的JavaScript日期对象
Type
Date
例子
var jsdate=new Date('2023-9-10 20:05:11');
var newDate = DateUtils.z加年(jsdate, 2);
console.log(newDate.format()); 
//输出结果
2025-09-10 20:05:11

addYears(jsdate, y) → {Date}

说明:
  • 这个函数用于在指定日期上添加指定年份
别名:
  • z加年
参数列表:
参数名称 参数类型 备注
jsdate Date 要添加年份的JavaScript日期对象
y number 要添加的年份
返回值:
返回添加年份后的JavaScript日期对象
Type
Date
例子
var jsdate=new Date('2023-9-10 20:05:11');
var newDate = DateUtils.addYears(jsdate, 2);
console.log(newDate.format()); 
//输出结果
2025-09-10 20:05:11

z年(jsdate) → {Number}

说明:
  • 这个函数用于获取指定日期的年份
别名:
  • year
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取年份的JavaScript日期对象
返回值:
返回指定日期的年份
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var year = DateUtils.z年(jsdate);
console.log(year); 
//输出结果
2023

year(jsdate) → {Number}

说明:
  • 这个函数用于获取指定日期的年份
别名:
  • z年
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取年份的JavaScript日期对象
返回值:
返回指定日期的年份
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var year = DateUtils.year(jsdate);
console.log(year); 
//输出结果
2023

z月(jsdate) → {Number}

说明:
  • 这个函数用于获取指定日期的月份
别名:
  • month
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取月份的JavaScript日期对象
返回值:
返回指定日期的月份
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var month = DateUtils.z月(jsdate);
console.log(month); 
//输出结果
9

month(jsdate) → {Number}

说明:
  • 这个函数用于获取指定日期的月份
别名:
  • z月
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取月份的JavaScript日期对象
返回值:
返回指定日期的月份
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var month = DateUtils.month(jsdate);
console.log(month); 
//输出结果
9

z日(jsdate) → {Number}

说明:
  • 这个函数用于获取指定日期的日
别名:
  • day
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取日的JavaScript日期对象
返回值:
返回指定日期的日
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var day = DateUtils.z日(jsdate);
console.log(day); 
//输出结果
10

day(jsdate) → {Number}

说明:
  • 这个函数用于获取指定日期的日
别名:
  • z日
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取日的JavaScript日期对象
返回值:
返回指定日期的日
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var day = DateUtils.day(jsdate);
console.log(day); 
//输出结果
10

z星期(jsdate) → {Number}

说明:
  • 这个函数用于获取指定日期的星期几(以数字表示)
别名:
  • weekday
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取星期的JavaScript日期对象
返回值:
返回指定日期的星期几(以数字表示,1表示星期一,2表示星期二,以此类推)
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var weekday = DateUtils.z星期(jsdate);
console.log(weekday); // 指定日期的星期几
//输出结果
7

weekday(jsdate) → {Number}

说明:
  • 这个函数用于获取指定日期的星期几(以数字表示)
别名:
  • z星期
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取星期的JavaScript日期对象
返回值:
返回指定日期的星期几(以数字表示,1表示星期一,2表示星期二,以此类推)
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var weekday = DateUtils.weekday(jsdate);
console.log(weekday); // 指定日期的星期几
//输出结果
7

z星期中文(jsdate) → {String}

说明:
  • 这个函数用于获取指定日期的星期几(以中文字符串表示)
别名:
  • weekdayCn
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取星期的JavaScript日期对象
返回值:
返回指定日期的星期几(以中文字符串表示,如"一"、"二"..."日")
Type
String
例子
var jsdate=new Date('2023-9-10 20:05:11');
var weekdayCn = DateUtils.z星期中文(jsdate);
console.log(weekdayCn); // 指定日期的星期几(中文)
//输出结果
日

weekdayCn(jsdate) → {String}

说明:
  • 这个函数用于获取指定日期的星期几(以中文字符串表示)
别名:
  • z星期中文
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取星期的JavaScript日期对象
返回值:
返回指定日期的星期几(以中文字符串表示,如"一"、"二"..."日")
Type
String
例子
var jsdate=new Date('2023-9-10 20:05:11');
var weekdayCn = DateUtils.weekdayCn(jsdate);
console.log(weekdayCn); // 指定日期的星期几(中文)
//输出结果
日

z季度(jsdate) → {Number}

说明:
  • 这个函数用于获取指定日期的季度
别名:
  • quarter
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取季度的JavaScript日期对象
返回值:
返回指定日期的季度(1表示第一季度,2表示第二季度,以此类推)
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var quarter = DateUtils.z季度(jsdate);
console.log(quarter); // 指定日期的季度
//输出结果
3

quarter(jsdate) → {Number}

说明:
  • 这个函数用于获取指定日期的季度
别名:
  • z季度
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取季度的JavaScript日期对象
返回值:
返回指定日期的季度(1表示第一季度,2表示第二季度,以此类推)
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var quarter = DateUtils.quarter(jsdate);
console.log(quarter); // 指定日期的季度
//输出结果
3

z当月天数(jsdate) → {Number}

说明:
  • 这个函数用于获取指定日期所在月份的天数
别名:
  • daysOfMonth
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取天数的JavaScript日期对象
返回值:
返回指定日期所在月份的天数
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var days = DateUtils.z当月天数(jsdate);
console.log(days); // 指定日期所在月份的天数
//输出结果
30

daysOfMonth(jsdate) → {Number}

说明:
  • 这个函数用于获取指定日期所在月份的天数
别名:
  • z当月天数
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取天数的JavaScript日期对象
返回值:
返回指定日期所在月份的天数
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var days = DateUtils.daysOfMonth(jsdate);
console.log(days); // 指定日期所在月份的天数
//输出结果
30

z月初(jsdate) → {Date}

说明:
  • 这个函数用于获取指定日期所在月份的第一天
别名:
  • firstDayOfMonth
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取第一天的JavaScript日期对象
返回值:
返回指定日期所在月份的第一天(以Date对象返回)
Type
Date
例子
var jsdate=new Date('2023-9-10 20:05:11');
var firstDay = DateUtils.z月初(jsdate);
console.log(firstDay.format()); // 指定日期所在月份的第一天
//输出结果
2023-09-01

firstDayOfMonth(jsdate) → {Date}

说明:
  • 这个函数用于获取指定日期所在月份的第一天
别名:
  • z月初
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取第一天的JavaScript日期对象
返回值:
返回指定日期所在月份的第一天(以Date对象返回)
Type
Date
例子
var jsdate=new Date('2023-9-10 20:05:11');
var firstDay = DateUtils.firstDayOfMonth(jsdate);
console.log(firstDay.format()); // 指定日期所在月份的第一天
//输出结果
2023-09-01

z月底(jsdate) → {Date}

说明:
  • 这个函数用于获取指定日期所在月份的最后一天
别名:
  • endOfMonth
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取最后一天的JavaScript日期对象
返回值:
返回指定日期所在月份的最后一天(以Date对象返回)
Type
Date
例子
var jsdate=new Date('2023-9-10 20:05:11');
var lastDay = DateUtils.z月底(jsdate);
console.log(lastDay.format()); // 指定日期所在月份的最后一天
//输出结果
2023-09-30

endOfMonth(jsdate) → {Date}

说明:
  • 这个函数用于获取指定日期所在月份的最后一天
别名:
  • z月底
参数列表:
参数名称 参数类型 备注
jsdate Date 要获取最后一天的JavaScript日期对象
返回值:
返回指定日期所在月份的最后一天(以Date对象返回)
Type
Date
例子
var jsdate=new Date('2023-9-10 20:05:11');
var lastDay = DateUtils.endOfMonth(jsdate);
console.log(lastDay.format()); // 指定日期所在月份的最后一天
//输出结果
2023-09-30

z转VBA日期数值(jsdate) → {Number}

说明:
  • 这个函数用于将JavaScript日期对象转换为VBA日期数值
别名:
  • cdate
参数列表:
参数名称 参数类型 备注
jsdate Date 要转换的JavaScript日期对象
返回值:
返回转换后的VBA日期数值
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var vbaDate = DateUtils.z转VBA日期数值(jsdate);
console.log(vbaDate); // 转换后的VBA日期数值
//输出结果
45179.836932870399

cdate(jsdate) → {Number}

说明:
  • 这个函数用于将JavaScript日期对象转换为VBA日期数值
别名:
  • z转VBA日期数值
参数列表:
参数名称 参数类型 备注
jsdate Date 要转换的JavaScript日期对象
返回值:
返回转换后的VBA日期数值
Type
Number
例子
var jsdate=new Date('2023-9-10 20:05:11');
var vbaDate = DateUtils.cdate(jsdate);
console.log(vbaDate); // 转换后的VBA日期数值
//输出结果
45179.836932870399

z表格日期转JS(xlsdate) → {Date}

说明:
  • 这个函数用于将Excel日期数值转换为JavaScript日期对象
别名:
  • fromExcelDate
参数列表:
参数名称 参数类型 备注
xlsdate Number 要转换的Excel日期数值
返回值:
返回转换后的JavaScript日期对象
Type
Date
例子
var xlsdate=45179.836932870399;
var jsDate = DateUtils.z表格日期转JS(xlsdate);
console.log(jsDate.format()); // 转换后的JavaScript日期对象
//输出结果
2023-09-10 20:05:11

fromExcelDate(xlsdate) → {Date}

说明:
  • 这个函数用于将Excel日期数值转换为JavaScript日期对象
别名:
  • z表格日期转JS
参数列表:
参数名称 参数类型 备注
xlsdate Number 要转换的Excel日期数值
返回值:
返回转换后的JavaScript日期对象
Type
Date
例子
var xlsdate=45179.836932870399;
var jsDate = DateUtils.fromExcelDate(xlsdate);
console.log(jsDate.format()); // 转换后的JavaScript日期对象
//输出结果
2023-09-10 20:05:11

z今天日期() → {String}

说明:
  • 这个函数用于获取当前日期的字符串表示(格式为YYYY-MM-DD)
别名:
  • today
返回值:
返回当前日期的字符串表示
Type
String
例子
var today = DateUtils.z今天日期();
console.log(today); // 当前日期的字符串表示
//输出结果
2024-09-28

today() → {String}

说明:
  • 这个函数用于获取当前日期的字符串表示(格式为YYYY-MM-DD)
别名:
  • z今天日期
返回值:
返回当前日期的字符串表示
Type
String
例子
var today = DateUtils.today();
console.log(today); // 当前日期的字符串表示
//输出结果
2024-09-28

z日期时间() → {String}

说明:
  • 这个函数用于获取当前日期和时间的字符串表示(格式为YYYY-MM-DD HH:mm:ss)
别名:
  • now
返回值:
返回当前日期和时间的字符串表示
Type
String
例子
var datetime = DateUtils.z日期时间();
console.log(datetime); // 当前日期和时间的字符串表示
//输出结果
2024-09-28 20:48:13

now() → {String}

说明:
  • 这个函数用于获取当前日期和时间的字符串表示(格式为YYYY-MM-DD HH:mm:ss)
别名:
  • z日期时间
返回值:
返回当前日期和时间的字符串表示
Type
String
例子
var datetime = DateUtils.now();
console.log(datetime); // 当前日期和时间的字符串表示
//输出结果
2024-09-28 20:48:13

z时间() → {String}

说明:
  • 这个函数用于获取当前时间的字符串表示(格式为HH:mm:ss)
别名:
  • time
返回值:
返回当前时间的字符串表示
Type
String
例子
var time = DateUtils.z时间();
console.log(time); // 当前时间的字符串表示
//输出结果
20:49:53

time() → {String}

说明:
  • 这个函数用于获取当前时间的字符串表示(格式为HH:mm:ss)
别名:
  • z时间
返回值:
返回当前时间的字符串表示
Type
String
例子
var time = DateUtils.time();
console.log(time); // 当前时间的字符串表示
//输出结果
20:49:53

z日期间隔(dmin, dmax) → {String}

说明:
  • 这个函数用于计算两个日期之间的间隔
别名:
  • datedif
参数列表:
参数名称 参数类型 备注
dmin Date 较小的日期
dmax Date 较大的日期
返回值:
返回两个日期之间的间隔字符串表示 格式: x年x个月x天
Type
String
例子
var dmin=new Date('2023-9-10 20:05:11');
var dmax=new Date('2023-10-6 20:05:11');
var interval = DateUtils.z日期间隔(dmin, dmax);
console.log(interval); // 两个日期之间的间隔字符串表示
//输出结果
0年0个月26天

datedif(dmin, dmax) → {String}

说明:
  • 这个函数用于计算两个日期之间的间隔
别名:
  • z日期间隔
参数列表:
参数名称 参数类型 备注
dmin Date 较小的日期
dmax Date 较大的日期
返回值:
返回两个日期之间的间隔字符串表示 格式: x年x个月x天
Type
String
例子
var dmin=new Date('2023-9-10 20:05:11');
var dmax=new Date('2023-10-6 20:05:11');
var interval = DateUtils.datedif(dmin, dmax);
console.log(interval); // 两个日期之间的间隔字符串表示
//输出结果
0年0个月26天

z只留日期(d) → {Number}

说明:
  • 这个函数用于保留给定日期的日期部分,将其他部分置为0, 返回vba格式日期数值
别名:
  • justDate
参数列表:
参数名称 参数类型 备注
d Date 需要处理的日期对象
返回值:
处理后为vba格式日期数值
Type
Number
例子
var jsDate=new Date('2023-9-10 20:05:11');
var day = DateUtils.z只留日期(jsDate);  //day: 是vba格式日期数值: 45179
console.log(DateUtils.fromExcelDate(day).format()); //先转成js日期再格式化输出
//输出结果
2023-09-10

justDate(d) → {Number}

说明:
  • 这个函数用于保留给定日期的日期部分,将其他部分置为0, 返回vba格式日期数值
别名:
  • z只留日期
参数列表:
参数名称 参数类型 备注
d Date 需要处理的日期对象
返回值:
处理后为vba格式日期数值
Type
Number
例子
var jsDate=new Date('2023-9-10 20:05:11');
var day = DateUtils.justDate(jsDate);  //day: 是vba格式日期数值: 45179
console.log(DateUtils.fromExcelDate(day).format()); //先转成js日期再格式化输出
//输出结果
2023-09-10

z只留时间(d) → {Number}

说明:
  • 这个函数用于保留给定日期的时间部分,将其他部分置为0
别名:
  • justTime
参数列表:
参数名称 参数类型 备注
d Date 需要处理的日期对象
返回值:
- 处理后的时间部分
Type
Number
例子
var jsDate=new Date('2023-9-10 20:05:11');
var time = DateUtils.z只留时间(jsDate);  
console.log(time); 
//输出结果
0.83693287039999997

justTime(d) → {Number}

说明:
  • 这个函数用于保留给定日期的时间部分,将其他部分置为0
别名:
  • z只留时间
参数列表:
参数名称 参数类型 备注
d Date 需要处理的日期对象
返回值:
- 处理后的时间部分
Type
Number
例子
var jsDate=new Date('2023-9-10 20:05:11');
var time = DateUtils.justTime(jsDate);  
console.log(time); 
//输出结果
0.83693287039999997