日期处理函数工具封装(持续更新中……)

简介: 日期处理函数工具封装(持续更新中……)

日期处理函数工具封装

判断润年

/**
 * 判断润年
 * @param {string} year 年份
 * @return {Boolean} 
 */
export const isLeap = function (year) {
  if ((year % 4 === 0 && year % 100 !== 0) || (year % 400 === 0)) {
    return true
  }
  return false
};

获取星期

/**
 * 获取星期
 * @param {string} date 日期
 * @return {string} 星期
 */
export const getWeek = function (date) {
  let Stamp = new Date(date)
  // return weeks[Stamp.getDay()];
  let weeks = ['日','一','二','三','四','五','六'];
  return weeks[Stamp.getDay()];
};

获取月份天数

/**
 * 获取月份天数
 * @param {string} year  年份
 * @param {string} month 月份
 * @return {number} 月份天数
 */
export const getMonthDays = function (year, month) {
  month = parseInt(month) - 1
  if (month < 0 || month > 11) return ''
  let months = [31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30, 31]
  if (this.isLeap(year)) {
    months[1] = 29
  }
  return months[month]
};

数字补零

用于格式化日期

/**
 * 数字补零
 * @param {string} str
 * @return {string}
 */
export const zero = function (str) {
  str = parseInt(str)
  return str > 9 ? str : '0' + str
};

获取今天日期

/**
 * 获取今天日期
 * @param {string} str  日期格式
 * @return {string} 格式化日期
 */
export const getToday = function (str) {
  const date = new Date();
  const year = date.getFullYear(),
        month = zero(date.getMonth() + 1),
        day = zero(date.getDate()),
        hour = zero(date.getHours()),
        minute = zero(date.getMinutes()),
        second = zero(date.getSeconds());
  let res = '';
  switch (str){
    case "yyyy-mm-dd":
      res = year + '-' + month + '-' + day;
      break;
    case "mm-dd-yyyy":
      res = month + '-' + day + '-' + year;
      break;
    case "yyyy-mm-dd hh:MM:ss":
      res = year + '-' + month + '-' + day + ' ' + hour + ':' + minute + ':' + second;
      break;
    case "hh:MM:ss":
      res = hour + ':' + minute + ':' + second;
      break;
    case "yyyy":
      res = year;
      break;
    case "mm-dd":
      res = month + '-' + day;
      break;
    default:
      res = '参数错误';
      break;
  }
  return res;
}

获取上一天日期

/**
 * 获取上一天日期
 * @param {string} str  当前日期
 * @return {string} 上一天日期
 */
export const getYesterday = function (str) {
  let date = str.split('-');
  let year = parseInt(date[0]),
    month = parseInt(date[1]),
    day = parseInt(date[2]);
  if(month > 12 || month < 1 || day > getMonthDays(year,month)) return '日期不合法';
  day -= 1;
  if(day > 0){
    return year + '-' + zero(month) + '-' + zero(day);
  }
  month -= 1;
  if(month > 0){
    return year + '-' + zero(month) + '-' + getMonthDays(year,month);
  }
  year -= 1;
  return year + '-' + 12 + '-' + getMonthDays(year,12);
};

获取下一天日期

/**
 * 获取下一天日期
 * @param {string} str  当前日期
 * @return {string} 下一天日期
 */
export const getTomorrow = function (str){
  let date = str.split('-');
  let year = parseInt(date[0]),
    month = parseInt(date[1]),
    day = parseInt(date[2]);
  if(month > 12 || month < 1 || day > getMonthDays(year,month)) return '日期不合法';
  day += 1;
  if(day <= getMonthDays(year,month)){
    return year + '-' + zero(month) + '-' + zero(day);
  }
  month += 1;
  if(month < 13){
    return year + '-' + zero(month) + '-' + '01';
  }
  year += 1;
  return year + '-' + '01' + '-' + '01';
}

todo

获取当前周数

补充

还有什么需要补充的可以在评论中告诉我。

目录
相关文章
|
11月前
|
JSON 小程序 算法
uniapp小程序封装常用工具函数
类似的工具函数还有很多,这里暂时不一一列举了,上面提到的银行卡校验,还可以使用阿里公开的一个校验接口cardNo=银行卡号码&cardBinCheck=true这个接口会返回对应的银行简称银行卡类型,如果想要显示对应的银行logo的话,可以联系我,由于JSON数据太大,没办法全部放在这里。
148 0
|
2天前
|
SQL JSON 数据库
技术笔记:mysqlidb类的使用方法汇总
技术笔记:mysqlidb类的使用方法汇总
|
2月前
|
Java 容器
对于所有对象都通用的方法⭐良好习惯总结(避免踩坑)
对于所有对象都通用的方法⭐良好习惯总结(避免踩坑)
|
9月前
|
JavaScript API
带你读《现代TypeScript高级教程》十五、装饰器与反射元数据(2)
带你读《现代TypeScript高级教程》十五、装饰器与反射元数据(2)
|
9月前
|
JavaScript 前端开发
带你读《现代TypeScript高级教程》十五、装饰器与反射元数据(1)
带你读《现代TypeScript高级教程》十五、装饰器与反射元数据(1)
|
数据挖掘 Perl
Mummer 用法简析
Mummer 用法简析
93 0
|
前端开发 JavaScript API
封装库/工具库中重要概念之日期处理库
在前端开发中,日期处理是一个常见的需求。例如,在Web应用程序中,我们通常需要显示日期、计算日期差值、格式化日期等等操作。然而,JavaScript原生API对日期处理的支持相对较弱,因此在实际开发中,我们通常会使用一些封装库和工具库来简化日期处理。在本文中,我们将探讨前端中一些实用的日期处理库。
80 0
|
C++ 索引
一文详解C++运算符重载【自己动手封装一个xxx.h库】
一文详解C++运算符重载【自己动手封装一个xxx.h库】
228 0
一文详解C++运算符重载【自己动手封装一个xxx.h库】
|
存储 前端开发 JavaScript
Web前端学习:JaveScript基础 [简介、用法、变量及数据类型、流程控制及函数] (附源代码)
Web前端学习:JaveScript基础 [简介、用法、变量及数据类型、流程控制及函数] (附源代码)
239 0
Web前端学习:JaveScript基础 [简介、用法、变量及数据类型、流程控制及函数] (附源代码)
|
前端开发 JavaScript 计算机视觉
手把手教你封装一个日期格式化的工具函数
最近还是在做那个练习的小项目,做完接收数据并渲染到页面上的时候,发现后端小伙伴又在给我找活干了欸,单纯的渲染这当然是小kiss啦,可这个字段是个什么东西? "createTime" : "2021-01-17T13:32:06.381Z", "lastLoginTime" : "2021-01-17T13:32:06.381Z"