项目中,总有和时间日期相关的处理,因此为了方便自己和你们,我就做一个妥善的整理。

我这里采用vue3.0的写法

1.日期选择器,限制范围(默认当前日期,以及前2天)

<template><span>选择时间:</span><el-date-pickerv-model="licenseEndDate"type="daterange"range-separator="-"format="YYYY-MM-DD"value-format="YYYY-MM-DD"start-placeholder="请选择开始时间"end-placeholder="请选择结束时间":disabledDate="disabledDate"@change="onChangeDateRange"/>
</template><script setup>
import {onBeforeUnmount,onMounted,reactive,ref,getCurrentInstance,toRefs,watch,
} from "vue";const licenseEndDate = ref([]);onMounted(() => {licenseEndDate.value = [moment(new Date().getTime() - 2 * 1000 * 24 * 60 * 60).format("YYYY-MM-DD"),moment(new Date()).format("YYYY-MM-DD"),];
});//限制只能选择当前日期之前
const disabledDate = (time) => {return time.getTime() > Date.now();
};
</sc
ript>

2.最近三天、近一月及前N天的日期


const getData=(value)=>{//value---最近天数moment(new Date().getTime() - value * 1000 * 24 * 60 * 60).format('YYYY-MM-DD')
}

3.获取今日/昨日/本周/上周/本月/上月 时间

  // 获取今日的开始结束时间export const getToday=()=> {let obj = {starttime: '',endtime: ''}obj.starttime = moment(moment().startOf("day").valueOf()).format("YYYY-MM-DD HH:mm:ss");obj.endtime = moment(moment().valueOf()).format("YYYY-MM-DD HH:mm:ss");return obj},// 获取昨日的开始结束时间export  const getYesterday=()=> {let obj = {starttime: '',endtime: ''}obj.starttime = moment(moment().add(-1, 'days').startOf("day").valueOf()).format("YYYY-MM-DD HH:mm:ss");obj.endtime = moment(moment().add(-1, 'days').endOf('day').valueOf()).format('YYYY-MM-DD HH:mm:ss');return obj},// 获取当前周的开始结束时间export  const getCurrWeekDays=()=> {let obj = {starttime: '',endtime: ''}obj.starttime = moment(moment().week(moment().week()).startOf('week').add(1, 'days').valueOf()).format('YYYY-MM-DD HH:mm:ss')obj.endtime = moment(moment().week(moment().week()).endOf('week').add(1, 'days').valueOf()).format('YYYY-MM-DD HH:mm:ss');return obj},// 获取上一周的开始结束时间export  const getLastWeekDays=()=> {let obj = {starttime: '',endtime: ''}obj.starttime = moment(moment().week(moment().week() - 1).startOf('week').add(1, 'days').valueOf()).format('YYYY-MM-DD HH:mm:ss')obj.endtime = moment(moment().week(moment().week() - 1).endOf('week').add(1, 'days').valueOf()).format('YYYY-MM-DD HH:mm:ss');return obj},// 获取当前月的开始结束时间export  const getCurrMonthDays=() =>{let obj = {starttime: '',endtime: ''}obj.starttime = moment(moment().month(moment().month()).startOf('month').valueOf()).format('YYYY-MM-DD HH:mm:ss');obj.endtime = moment(moment().month(moment().month()).endOf('month').valueOf()).format('YYYY-MM-DD HH:mm:ss');return obj},// 获取上一个月的开始结束时间export  const getLastMonthDays=()=> {let obj = {starttime: '',endtime: ''}obj.starttime = moment(moment().month(moment().month() - 1).startOf('month').valueOf()).format('YYYY-MM-DD HH:mm:ss');obj.endtime = moment(moment().month(moment().month() - 1).endOf('month').valueOf()).format('YYYY-MM-DD HH:mm:ss');return obj},

4.时间戳(获取系统时间)

const timeFilter=()=> {var date = new Date();var times = date.getHours();var whe = parseInt(times);var y = date.getFullYear()var m = (date.getMonth() + 1 < 10 ? '0' + (date.getMonth() + 1) : date.getMonth() + 1)var d = (date.getDate() < 10 ? '0' + (date.getDate()) : date.getDate())var startTime = y + "-" + m + "-" + d;return startTime;}
/*** 当前时间* @param {*} date */
function DateTime(date) {if (date) {return new Date(date);}return new Date();
}/*** 获取日期 yyyy-MM-dd 00:00:00*/
function GetDate() {var date = this.ToDateString();date = DateTime(date);var h = date.ToString("HH");if (h > 0) {date = DateTime(date);date = date.AddH(0 - h);}return date
}/*** 当前时间字符串*/
function ToString(fmt) {var date = this;fmt = fmt || "yyyy/MM/dd HH:mm:ss"return dateFormat(fmt, date);
}/*** 当前日期字符串*/
function ToDateString() {var date = this;return dateFormat("yyyy-MM-dd", date);
}/*** 增加一天*/
function AddDay(num) {var date = this;date = date.setDate(date.getDate() + num);return new Date(date);
}/*** 增加一周*/
function AddWeek(num) {var date = this;date = date.setDate(date.getDate() + (num * 7));return new Date(date);
}/*** 增加一个月*/
function AddMonth(num) {var date = this;date = date.setMonth(date.getMonth() + num);return new Date(date);
}/*** 增加一年*/
function AddYear(num) {var date = this;date = date.setFullYear(date.getFullYear() + num);return new Date(date);
}/*** 增加一小时*/
function AddH(num) {var date = this;date = date.setHours(date.getHours() + (num));return new Date(date);
}/*** 增加一分钟*/
function AddM(num) {var date = this;date = date.setMinutes(date.getMinutes() + (num));return new Date(date);
}/*** 增加一秒*/
function AddS(num) {var date = this;date = date.setSeconds(date.getSeconds() + (num));return new Date(date);
}/*** 增加一毫秒*/
function AddF(num) {var date = this;date = date.setMilliseconds(date.getMilliseconds() + (num));return new Date(date);
}/*** 月份天数*/
function MDays() {var date = this;var d = new Date(date.ToString("y"), date.ToString("M"), 0);return d.getDate();
}/*** 格式化时间*/
function dateFormat(fmt, date) {var ret;var opt = {"y+": date.getFullYear().toString(), // 年"M+": (date.getMonth() + 1).toString(), // 月"d+": date.getDate().toString(), // 日"H+": date.getHours().toString(), // 时"m+": date.getMinutes().toString(), // 分"s+": date.getSeconds().toString(), // 秒"f+": date.getMilliseconds().toString() // 毫秒// 有其他格式化字符需求可以继续添加,必须转化成字符串};for (var k in opt) {ret = new RegExp("(" + k + ")").exec(fmt);if (ret) {fmt = fmt.replace(ret[1], (ret[1].length == 1) ? (opt[k]) : (opt[k].padStart(ret[1].length, "0")))};};return fmt;
}/*** 计算时间差*/
function dateDiff(startDate, EndDate) {var dateStart = new Date(startDate);var dateEnd = new Date(EndDate);return Value = {day: parseInt((dateEnd - dateStart) / (1000 * 60 * 60 * 24)),Hours: parseInt((dateEnd - dateStart) / (1000 * 60 * 60)),Minutes: parseInt((dateEnd - dateStart) / (1000 * 60)),Seconds: parseInt((dateEnd - dateStart) / (1000)),t: parseInt((dateEnd - dateStart)),};
}/*** 获取本周所有日期 字符串数组*/
function GetWeekDays() {var days = [];var date = this;var today = date.getDay();var Sunday = date.AddDay(-today);for (var i = 0; i < 7; i++) {days.push(Sunday.AddDay(i).ToString("yyyy/MM/dd"));Sunday.AddDay(-i);}return days;
}/*** 获取本月所有日期 字符串数组*/
function GetMonthDays(n, b) {var weeks = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");n = n || 0;var days = [];var date = this;var newDate = date.AddMonth(n);var M = newDate.ToString("M");var W = newDate.getDay();var week = weeks[newDate.getDay()];var m_days = newDate.MDays();var strDate = new Date(newDate.ToString("yyyy-MM")).AddDay(-1);// console.log(strDate.ToString("yyyy-MM-dd"))for (var i = 0; i < m_days; i++) {var $day = strDate.AddDay(1);var _day = $day.ToString("yyyy-MM-dd");var _w = $day.getDay();var _week = weeks[$day.getDay()];days.push({day: _day, //日期week: _week, //星期,中文w: _w, //星期几,数字值,星期天为0dy: true, //是否为当月日期y: $day.ToString("yyyy"), //年m: $day.ToString("MM"), //月d: $day.ToString("dd"), //日});}if (b) {var day_1 = days[0];var c_1 = -(0 - day_1.w);if (day_1.w > 0) {// console.log(day_1);for (var i = 0; i < c_1; i++) {var _s = DateTime(day_1.day);var _d = _s.AddDay(-i - 1);var _w = _s.getDay();var _week = weeks[_s.getDay()];days.unshift({day: _d.ToString("yyyy-MM-dd"),week: _week,w: _w,dy: false,y: _d.ToString("yyyy"), //年m: _d.ToString("MM"), //月d: _d.ToString("dd"), //日});}}var day_2 = days[days.length - 1];console.log(day_2)if (day_2.w < 6) {var c_2 = -(day_2.w - 6);for (var i = 0; i < c_2; i++) {var _s = DateTime(day_2.day);var _d = _s.AddDay(i + 1);var _w = _s.getDay();var _week = weeks[_s.getDay()];days.push({day: _d.ToString("yyyy-MM-dd"),week: _week,w: _w,dy: false,y: _d.ToString("yyyy"), //年m: _d.ToString("MM"), //月d: _d.ToString("dd"), //日});// days.push(null);}}}return days;
}/*** 获取时间对象* @returns*/
function ToObj() {var _self = this;return {year: Number(_self.getFullYear().toString()),Month: Number((_self.getMonth() + 1).toString()),Day: Number(_self.getDate().toString()),Hours: Number(_self.getHours().toString()),Minutes: Number(_self.getMinutes().toString()),Seconds: Number(_self.getSeconds().toString()),Milliseconds: Number(_self.getMilliseconds().toString()),};
}/*** 获取当前日期是星期几 */
function ToWeek() {var weeks = new Array("星期日", "星期一", "星期二", "星期三", "星期四", "星期五", "星期六");return weeks[this.getDay()];
}Date.prototype.ToString = ToString; //时间转字符串
Date.prototype.ToDateString = ToDateString; //时间转字符串
Date.prototype.AddDay = AddDay; //增加天
Date.prototype.AddWeek = AddWeek; //增加周
Date.prototype.AddMonth = AddMonth; //增加月
Date.prototype.AddYear = AddYear; //增加年
Date.prototype.AddH = AddH; //增加小时
Date.prototype.AddM = AddM; //增加分
Date.prototype.AddS = AddS; //增加秒
Date.prototype.AddF = AddF; //增加毫秒
Date.prototype.GetWeekDays = GetWeekDays; //获取本周所有日期
Date.prototype.GetMonthDays = GetMonthDays; //获取本周所有日期
Date.prototype.MDays = MDays; //获取本月天数
Date.prototype.GetDate = GetDate; //日期
Date.prototype.ToObj = ToObj; //获取时间对象
Date.prototype.ToWeek = ToWeek; //获取当前日期是星期几/**---时间字符串操作--------------------------------------------------- */
/*** /Date(1591070400000)/ 格式时间转时间对象*/
function ToDate() {var d = eval('new ' + this.substr(1, this.length - 2));return d;
}String.prototype.ToDate = ToDate;/*** String.padStart()*/
if (!String.prototype.padStart) {String.prototype.padStart = function padStart(targetLength, padString) {targetLength = targetLength >> 0; //floor if number or convert non-number to 0;padString = String(typeof padString !== 'undefined' ? padString : ' ');if (this.length > targetLength) {return String(this);} else {targetLength = targetLength - this.length;if (targetLength > padString.length) {padString += padString.repeat(targetLength / padString.length); //append to original to ensure we are longer than needed}return padString.slice(0, targetLength) + String(this);}};
}

js-时间相关操作(获取当前日期、最近三天、近一月及前N天的日期)相关推荐

  1. js和java得到当前日期和三十天以前日期

    js: //获取当前日期 var myDate = new Date(); var nowY = myDate.getFullYear(); var nowM = myDate.getMonth()+ ...

  2. JavaScript 获取 当前日期和三十天以前日期

    1 //获取当前日期 2 var myDate = new Date(); 3 var nowY = myDate.getFullYear(); 4 var nowM = myDate.getMont ...

  3. JavaScript 获取当前日期和三十天以前日期

    function getThirtyDays() {//获取当前日期var myDate = new Date();var nowY = myDate.getFullYear();var nowM = ...

  4. [转载] python如何获取当前月份_Python-获取当前月的前x月月份日期

    参考链接: 如何在Python中获取当前日期和时间 """ 获取当前月的前x月月份日期 """ import datetime def ge ...

  5. python中获取当前年月_Python-获取当前月的前x月月份日期

    """ 获取当前月的前x月月份日期 """ import datetime def getTheMonth(date, n): month ...

  6. JS中怎样获取当前日期的前一个月和后一个月的日期字符串

    场景 前端使用日期选择控件在刚进入页面时开始时间和结束时间默认赋值为当前日期的一个月前和一个月后. 并且赋值的格式为"2020-10-9"这种日期字符串格式. 注: 博客: htt ...

  7. vue使用 moment.js 格式化时间(获取当前日期的周一和周日)

    1.在项目中安装moment.js npm install moment --save 2.在main.js中全局引入 import moment from 'moment' //引入文件 Vue.p ...

  8. js使用moment获取当前日期是当前月的第几周

    getMonthWeek() { //获取当前时间转字符串并用字符串方法split转数组,获取当前时间年.月.日 let currentTimeArr = moment().month("Y ...

  9. python 获取当前日期并判断是否是工作日_通过Python获得相关日期的最近工作日...

    因为工作业务需要,需要判断得到的日期是否是节假日(包括周末),并返回最近的工作日(如果获得的日期就是工作日,则返回该日期本身) 自己实现其实很麻烦,我是通过workalendar这个第三方组件包实现的 ...

最新文章

  1. 终端复用命令行神器:tmux
  2. java学习笔记(12) —— Struts2 通过 xml /json 实现简单的业务处理
  3. PHP判断标量,php中is_scalar如何判断变量是否是一个标量
  4. 使用CAS代替synchronized
  5. 解决文件夹无限嵌套无法删除的问题---最新办法
  6. 冰点还原精灵Deep Freeze for mac 系统还原工具
  7. Java 多维数组 三维数组 初始化 赋值 打印
  8. 【转】让VB6.0集成环境支持鼠标滑轮
  9. 小旋风虚拟服务器怎么用,超级小旋风asp服务器软件使用图文教程
  10. 吴恩达 :机器学习的六个核心算法
  11. python如何爬取煎蛋图片(js)
  12. linux下敏感文件(账号密码)查找—内网渗透linux主机密码收集
  13. 计算机对金融学的帮助,计算机在金融业中的作用
  14. 【操作系统实验】Linux环境下用进程实现哲学家进餐问题——C语言完整代码+详细实验报告
  15. excel合并多个工作表_这三个公式,可以帮您合并任意多个Excel工作表
  16. docker desktop 运行mysql
  17. SAP HANA CLOUD – 入门指南
  18. 基于JSP仓储物资管理系统
  19. 步入社会的第一个迷茫期
  20. P1823 [COI2007] Patrik 音乐会的等待

热门文章

  1. 记录下在线扩容服务器遇到的问题 NOCHANGE: partition 1 is size 419428319. it cannot be grown
  2. win10系统 没有wifi图标 WiFi列表没有显示
  3. DAVINCI DM36x开发攻略——U-BOOT-2010.12及UBL移植
  4. 更新xcode 12.51时提示空间不足,以及macos的空间清理
  5. RPC:RPC的通信流程
  6. 李宏毅学习笔记43.More about Domain Adaptation. Part II. Applications
  7. Soul源码总结-01-21
  8. 2019双11猫晚直播技术详解(附演讲PDF)
  9. 36周岁这年,我终于知道该怎么活了!
  10. 嵌入式开发板如何自动登陆校园网实现上网