首页 > 其他分享 >Element ui 日期时间今天,昨天,一个月(转)

Element ui 日期时间今天,昨天,一个月(转)

时间:2022-12-02 18:47:21浏览次数:34  
标签:picker 59 temp Element 日期 ui Date new setHours

原文:https://blog.csdn.net/weixin_44585369/article/details/117334595

1、需求描述

项目里每月需要统计当月的一些数据,或者随时需要调取部分时间段的数据,用Element ui的日期时间控件来实现,如下图:

但为了便捷,就加入几个固定的时间快捷选项,因为数据库里的时间存储的是时间戳,所以前端查询需要给提供具体的时间段部分。

Element uiDateTimePicker 组件提供了个 default-time 属性,可以预设具体的时间,但这个属性有个问题,设置好以后,只能对在通过日历插件选择的日期有效,对快捷选项是无效。
我这里用一个方案,就是setHours(0,0,0,0),然后再将其转换为时间对象。

2、解决问题知识点

2.1、Date 对象转化

获取当前时间戳(13位)

new Date().getTime()
//输出时间戳:1605871486784

时间戳转为时间对象函数

new Date(timestamp)

用法示例:

// 不写new获取的是当前时间
Date(1553323849459) 
//Sat Mar 23 2019 14:58:21 GMT+0800 (中国标准时间)

// 写new可以将时间戳转换为时间对象
new Date(1553323849459)
//Sat Mar 23 2019 14:50:49 GMT+0800 (中国标准时间)

2.2、setHours() 方法

3、参考源码

<template>
  	<div class="index-content">
		<el-date-picker
                 size="mini"
                 :picker-options="pickerOptions"
                 v-model="arr_date"
                 @change="changeTime"
                 type="datetimerange"
                 range-separator="至"
                 start-placeholder="开始时间"
                 end-placeholder="结束时间"
                 value-format="yyyy-MM-dd HH:mm:ss"
                 :default-time="['00:00:00', '23:59:59']">
         </el-date-picker>
	</div>
</template>
export default {
	data() {
		return {
			pickerOptions: {
		        shortcuts: [
		          {
                            text: '今天',
                            onClick(picker) {
                                // const end = new Date();
                                // const start = new Date();
                                // picker.$emit('pick', [start, end]);
                                const temp = new Date();
                                picker.$emit('pick', [new Date(temp.setHours(0,0,0,0)), new Date(temp.setHours(23,59,59,0))]);
                            }
                        },
                        {
                            text: '昨天',
                            onClick(picker) {
                                const temp = new Date();
                                temp.setTime(temp.getTime() - 3600 * 1000 * 24);
                                picker.$emit('pick', [new Date(temp.setHours(0,0,0,0)), new Date(temp.setHours(23,59,59,0))]);
                            }
                        },
                        {
                            text: '这个月',
                            onClick(picker) {
                                const end = getCurrentMonthLast();
                                const start = getCurrentMonthFirst();
                                picker.$emit('pick', [new Date(start.setHours(0,0,0,0)), new Date(end.setHours(23,59,59,0))]);
                                function getCurrentMonthFirst() {
                                    let date = new Date();
                                    date.setDate(1);
                                    return date;
                                }
                                // 获取当前月的最后一天
                                function getCurrentMonthLast() {
                                    let date = new Date();
                                    let currentMonth = date.getMonth();
                                    let nextMonth = ++currentMonth;
                                    let nextMonthFirstDay = new Date(date.getFullYear(), nextMonth, 1);
                                    let oneDay = 1000 * 60 * 60 * 24;

                                    return new Date(nextMonthFirstDay - oneDay);
                                }
                            }
                        },
		        ]
     		},
		}
	},
}

标签:picker,59,temp,Element,日期,ui,Date,new,setHours
From: https://www.cnblogs.com/pine007/p/16945330.html

相关文章

  • 如何借助低代码开发平台 YonBuilder 填补应用开发 “产能缺口”?
    低代码平台本身是各类模型、引擎的重新组合,目的是为了填补应用开发需求远超开发者产能这一缺口,那如何理解填补应用开发需求和开发者产能的缺口?完成一个企业级的应用复杂度随......
  • Trajectory-guided Control Prediction for End-to-end Autonomous Driving: A Simple
    郑重声明:原文参见标题,如有侵权,请联系作者,将会撤销发布!NeurIPS2022......
  • vue3 + element plus 使用字节跳动图标
    使用场景:提一下vue2用法>> 下面回到正题vue3用法1 安装包:npminstall@icon-park/vue-next--save2 字节跳动图标库取图地址>>  3 用法:<te......
  • iOS上架之hubuilder打包Vue项目
    1.官网下载最新的HBuilderx。2.准备好一个包含manifest.json的Vue项目,打开进行详细设置,设置完成后,点击保存。3.首先去AppUploader找到开发证书(开发类型是带development的),点......
  • ​iOS上架之HBuider打包简单项目及注意事项
     1.官网下载最新的HBuilderx。​ 2.准备好一个包含manifest.json的Vue项目,打开进行详细设置,设置完成后,点击保存。 ​​3.首......
  • quilt add cdc_ncm.c
    2.添加patch关联的文件 quiltadd [-Pfilename.patch] filesquilt命令具有生成和应用补丁的功能,同时也可以作为补丁管理工具。使用quilt命令之后,会在源代码目录......
  • Java生成UUID
    Java生成UUID一、UUID简介UUID含义是通用唯一识别码(UniversallyUniqueIdentifier),这是一个软件建构的标准。也是被开源软件基金会(OpenSoftwareFoundation,OSF......
  • java中求两个日期之间的天数
    收藏一个常用的代码段,那就是java中求两个日期间的天数,常见于日历中的两个日期(yyyy-mm-dd)格式,要求它们之间的相差的天数,例子如下:CalendarstartC......
  • Require.js中shim的用法
    普通js文件加载 //test.jsfunctiontest(){}//配置require.config({paths:{test:'lib/shim/test'},shim:{test:{......
  • 模块化开发RequireJS之shim配置
    模块化开发RequireJS之shim配置weixin_33971130于 2017-12-0711:31:00 发布185 收藏 1文章标签: javascript ViewUI 一、shimrequirejs使用AMD......