这里会扩展一些JS常用时间处理方法,内置时间对象的方法不再赘述 —— 传送门:http://www.w3school.com.cn/js/jsref_obj_date.asp

  1. // 说明:JS时间Date格式化参数
  2. // 参数:格式化字符串如:'yyyy-MM-dd hh:mm:ss'
  3. // 结果:如2016-06-01 10:09:00
  4. Date.prototype.format = function (fmt) {
  5. var o = {
  6. "M+": this.getMonth() + 1, //月份
  7. "d+": this.getDate(), //日
  8. "h+": this.getHours(), //小时
  9. "m+": this.getMinutes(), //分
  10. "s+": this.getSeconds(), //秒
  11. "q+": Math.floor((this.getMonth() + 3) / 3), // 季度
  12. "S": this.getMilliseconds() // 毫秒
  13. };
  14. // 根据y的长度来截取年
  15. if (/(y+)/.test(fmt)){
  16. fmt = fmt.replace(RegExp.$1, (this.getFullYear() + "").substr(4 - RegExp.$1.length));
  17. }
  18. for (var k in o){
  19. if (new RegExp("(" + k + ")").test(fmt)) fmt = fmt.replace(RegExp.$1, (RegExp.$1.length == 1) ? (o[k]) : (("00" + o[k]).substr(("" + o[k]).length)));
  20. }
  21. return fmt;
  22. }
  23. // 用法:
  24. var time1 = new Date().format("yyyy-MM-dd");
  25. var time2 = new Date(1469281964000).format("yyyy-MM-dd hh:mm:ss");
  26. console.log(time1);
  27. console.log(time2);
  1. // 参数:‘2019-03-05’ || 时间对象
  2. // 结果:‘2019-03-04 至 2019-03-10’
  3. function getWeekRange(date) {
  4. if(!date) return
  5. var now = new Date(date);
  6. var nowDayOfWeek = now.getDay(); // 星期日—>六(0->6)
  7. var nowDay = now.getDate();
  8. var nowMonth = now.getMonth();
  9. var nowYear = now.getYear(); // 2019年是119
  10. nowYear += (nowYear < 2000) ? 1900 : 0;
  11. var weekStartDate = new Date(nowYear, nowMonth, nowDay - nowDayOfWeek+1); // 这周的周五
  12. var weekEndDate = new Date(nowYear, nowMonth, nowDay + (7 - nowDayOfWeek)); // 7- 这周的周日 && 用5- 得到这的周五
  13. return weekStartDate.format('yyyy-MM-dd') + " 至 " + weekEndDate.format('yyyy-MM-dd');
  14. }
  15. // 用法:
  16. getWeekRange(‘2019-03-05’) // ‘2019-03-04 至 2019-03-10’
  1. //获取当月第一天
  2. function getFirstDayOfMonth (date) {
  3. date.setDate(1);
  4. return date.format('yyyy-MM-dd');
  5. }
  1. function getFirstDayOfSeason (date) {
  2. var month = date.getMonth();
  3. if(month <3 ){
  4. date.setMonth(0);
  5. }else if(2 < month && month < 6){
  6. date.setMonth(3);
  7. }else if(5 < month && month < 9){
  8. date.setMonth(6);
  9. }else if(8 < month && month < 11){
  10. date.setMonth(9);
  11. }
  12. date.setDate(1);
  13. return date.format('yyyy-MM-dd');;
  14. }
  1. function getFirstDayOfYear (date) {
  2. date.setDate(1);
  3. date.setMonth(0);
  4. return date.format('yyyy-MM-dd');;
  5. }
  1. Math.ceil(( new Date() - new Date(new Date().getFullYear().toString()))/(24*60*60*1000))+1;
  1. function restDayOfYear() {
  2. var fullyear = new Date().getFullYear();
  3. var nextyear = fullyear + 1;
  4. var lastday = new Date(new Date(nextyear,0,1) - 1); //本年的最后一毫秒:
  5. var now = new Date();
  6. var diff = lastday - now; //毫秒数
  7. return Math.ceil(diff / (1000 * 60 * 60 * 24));
  8. }
  1. getWeekZh(value) {
  2. var dateArray = value.split("-");
  3. var zhWeek = "星期" + "日一二三四五六".charAt(new Date(dateArray[0], parseInt(dateArray[1] - 1), dateArray[2]).getDay());
  4. return zhWeek
  5. }

未完待续…

版权声明:本文为chenwenhao原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/chenwenhao/p/10480234.html