vue时间组件,vue日期时间选择器
这篇文章主要为大家详细介绍了某视频剪辑软件日期时间工具类,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
最近做的一个项目对日期时间的处理比较多,最后整理到一个工具类里面,方便以后使用:
1.在实用工具文件夹下新建一个dateTimeUtil.js文件:
//获取当前时间并格式化
导出函数getCurrentTime(){
var日期=新日期()
var month=date.getMonth() 1
var day=date.getDate()
if (month=9) {
月=0 月
}
if (day=9) {
day=0 天
}
返回日期。获取整年()-月-日日期。获取hours():日期。获取分钟():日期。获取秒数()
}
//时间格式化
导出函数格式时间(v) {
变量日期=新日期
var month=date.getMonth() 1
var day=date.getDate()
if (month=9) {
月=0 月
}
if (day=9) {
day=0 天
}
返回日期。获取整年()-月-日日期。获取hours():日期。获取分钟():日期。获取秒数()
}
//日期格式化
导出函数格式日期(v) {
变量日期=新日期
var month=date.getMonth() 1
var day=date.getDate()
if (month=9) {
月=0 月
}
if (day=9) {
day=0 天
}
return date.getFullYear() -月-日
}
//获取前、后n天https://www.cnblogs.com/aoqizhonghua/p/11775982.html
导出函数getRangeDate(数字,时间){
设n=数量
设d=
如果(时间){
d=新日期(时间);
}否则{
d=新日期();
}
设year=d . get full year();
设mon=d . get month()1;
let day=d . getdate();
if(day=n) {
如果(周一){
mon=mon-1;
}否则{
year=year-1;
mon=12
}
}
d。设置日期(d . getdate()-n);
year=d . get full year();
mon=d . get month()1;
day=d . getdate();
假设s=年份-(周一10?( 0 mon) : mon) -(第10天?( 0 天) :天);
返回s;
}
//获取某个月的起始、终止日期
导出函数getMonthDate(y,m){
让开始=新日期(y,m-1,1)
让年份=开始。获取整年();
让mon=开始。getmonth()1;
让一天开始。getdate();
设startDate=year - (mon 10?( 0 mon) : mon) -(第10天?( 0 天) :天)
let end=新日期((新日期(y,m,0)).getTime() 24*60*60*1000)-1)
让第一年=结束。获取整年();
设mon 1=结束获取月份()1;
让第一天结束。getdate();
let endDate=year1 - (mon1 10?( 0 mon1) : mon1) - (day1 10?("0"第一天) :第一天)
返回开始日期 —— 结束日期
}
/*
当前日期是年的第几周
日期一是当前日期
日期2是当年第一天
d是当前日期是今年第多少天
用d当前年的第一天的周差距的和在除以七就是本年第几周
*/
导出函数getYearWeek(a,b,c){
var日期1=新日期(a,parseInt(b) - 1,c),
日期2=新日期(a,0,1),
d=数学。圆((日期1。()的值-日期2。的值())/86400000)
回归数学。ceil(日期2。getday()1)-1))/7)
}
//计算某年某周的日期范围https://blog.csdn.net/lyhuo/article/details/82661063
导出函数weekGetDate(年,周){
var日期=新日期(年份,"0","1")
var time=date.getTime() //获取当前星期几,0:星期一
var _week=date.getDay() //当这一年的一月一日为周日时则本年有54周,否则没有54周,没有则去除第54周的提示
如果(_周!=0){//一年53周情况
if(weeks==54){
return -1 //今年没有54周
}
var cnt=0//获取距离周末的天数
if(_week==0){
cnt=7
}else if(_week==1){
cnt=6
}else if(_week==2){
cnt=5
}else if(_week==3){
cnt=4
}else if(_week==4){
cnt=3
}else if(_week==5){
cnt=2
}else if(_week==6){
cnt=1
}
cnt=1//加一表示以星期一为一周的第一天//将这个长整形时间加上第普通周的时间偏移
时间=cnt*24*3600000 //第2周开始时间
var next year=new Date(parse int(year,10) 1, 0 , 1 )
var nextWeek=nextYear.getDay()
var lastcnt=0//获取最后一周开始时间到周末的天数
if(nextWeek==0){
lastcnt=6
}else if(nextWeek==1){
lastcnt=0
}else if(nextWeek==2){
lastcnt=1
}else if(nextWeek==3){
lastcnt=2
}else if(nextWeek==4){
lastcnt=3
}else if(nextWeek==5){
lastcnt=4
}else if(nextWeek==6){
lastcnt=5
}
if(weeks==1){//第一周特殊处理//为日期对象日期重新设置成时间时间
//var start=date .格式( yyyy-MM-DD );
变量开始=日期。tolocaledatestring().拆分(/)。联接(-)
date.setTime(时间-24*3600000)
var end=date.toLocaleDateString().拆分(/)。联接(-)
回车开始"-"结束
}else if(weeks==53){//第53周特殊处理
定义变量开始=时间(周-2)*7*24*3600000 //第53周开始时间
var end=时间(周-2)* 7 * 24 * 3600000最后一个CNT * 24 * 3600000-24 * 3600000//第53周结束时间
date.setTime(开始)
//var _start=date .格式( yyyy-MM-DD );
var _ start=date。tolocaledatestring().拆分(/)。联接(-)
date.setTime(结束)
//var _end=date .格式( yyyy-MM-DD );
var _ end=date。tolocaledatestring().拆分(/)。联接(-)
return _start - _end
}否则{
定义变量开始=时间(周-2)*7*24*3600000 //第n周开始时间
var end=时间(周-1)*7*24*3600000 - 24*3600000 //第n周结束时间
date.setTime(开始)
//var _start=date .格式( yyyy-MM-DD );
var _ start=date。tolocaledatestring().拆分(/)。联接(-)
date.setTime(结束)
//var _end=date .格式( yyyy-MM-DD );
var _ end=date。tolocaledatestring().拆分(/)。联接(-)
return _start - _end
}
}else{//一年54周情况
var cnt=0//获取距离周末的天数
if(_week==0 weeks==1){//第一周
cnt=0
}else if(_week==0){
cnt=7
}else if(_week==1){
cnt=6
}else if(_week==2){
cnt=5
}else if(_week==3){
cnt=4
}else if(_week==4){
cnt=3
}else if(_week==5){
cnt=2
}else if(_week==6){
cnt=1
}
cnt=1//加一表示以星期一为一周的第一天
//将这个长整形时间加上第普通周的时间偏移
时间=24*3600000 //第2周开始时间
var next year=new Date(parse int(year,10) 1, 0 , 1 )
var nextWeek=nextYear.getDay()
var lastcnt=0 //获取最后一周开始时间到周末的天数
if(nextWeek==0){
lastcnt=6
}else if(nextWeek==1){
lastcnt=0
}else if(nextWeek==2){
lastcnt=1
}else if(nextWeek==3){
lastcnt=2
}else if(nextWeek==4){
lastcnt=3
}else if(nextWeek==5){
lastcnt=4
}else if(nextWeek==6){
lastcnt=5
}
if(weeks==1){//第一周特殊处理
//var start=date .格式( yyyy-MM-DD );
变量开始=日期。tolocaledatestring().拆分(/)。联接(-)
date.setTime(时间-24*3600000)
警报(开始日期)
返回_开始-日期
}else if(weeks==54){//第54周特殊处理
定义变量开始=时间(周-2)*7*24*3600000 //第54周开始时间
var end=时间(周-2)* 7 * 24 * 3600000最后一个CNT * 24 * 3600000-24 * 3600000//第53周结束时间
date.setTime(开始)
//var _start=date .格式( yyyy-MM-DD );
var _ start=date。tolocaledatestring().拆分(/)。联接(-)
date.setTime(结束)
//var _end=date .格式( yyyy-MM-DD );
var _ end=date。tolocaledatestring().拆分(/)。联接(-)
return _start - _end
}否则{
定义变量开始=时间(周-2)*7*24*3600000 //第n周开始时间
var end=时间(周-1)*7*24*3600000 - 24*3600000 //第n周结束时间
date.setTime(开始)
//var _start=date .格式( yyyy-MM-DD );
var _ start=date。tolocaledatestring().拆分(/)。联接(-)
date.setTime(结束)
//var _end=date .格式( yyyy-MM-DD );
var _ end=date。tolocaledatestring().拆分(/)。联接(-)
return _start - _end
}
}
}
//计算某年某月的日期范围
导出函数月结日(年,月){
定义变量年=年
定义变量月=月
月=月10?"0"月:月
var第一天=年-月- 01
var lastday=
if(month== 01 month== 03 month== 05 month== 07 month== 08 month== 10 month== 12 ){
最后一天=年-月- 31
} else if (month==02) {
if ((year % 4==0 year % 100!=0) (年% 100==0年% 400==0)) {
最后一天=年份-月份- 29
}否则{
最后一天=年份-月份- 28
}
}否则{
最后一天=年-月- 30
}
第一天返回-最后一天
}
//生成随机字符串方法
导出函数getString() {
假设时间=新日期()
time=time.getTime()
返回“${数学。random().toString(36).substr(2,10)}${time} `
}
//升序排序
导出函数气泡启动(排列,标志){
for(var I=0;长度;i ) {
for(var j=0;j排列长度-I-1;j ) {
if (arr[j][flag] arr[j 1][flag]) {
var c=arr[j];
arr[j]=arr[j 1];
arr[j 1]=c;
}
}
}
返回arrive)
}
//降序排序
导出函数bubbleSortDown(arr,flag) {
for(var I=0;长度;i ) {
for(var j=0;j arr。长度-I-1;j ) {
if (arr[j][flag] arr[j 1][flag]) {
var c=arr[j 1];
arr[j 1]=arr[j];
arr[j]=c;
}
}
}
返回arrive)
}
//减法精度处理
导出函数floatSub(arg1,arg2) {
变量r1、r2、m、n;
请尝试{ r1=arg1.toString().拆分(.)[1].长度}捕捉(e) { r1=0 }
请尝试{ r2=arg2.toString().拆分(.)[1].长度}捕捉(e) { r2=0 }
m=Math.pow(10,Math.max(r1,R2));
n=(r1=r2)?R1:R2;
return ((arg1 * m - arg2 * m)/m).toFixed(n);
}
2.在需要的文件中引入使用:
获取七天前的日期:
let day7=util.getRangeDate(7)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。
郑重声明:本文由网友发布,不代表盛行IT的观点,版权归原作者所有,仅为传播更多信息之目的,如有侵权请联系,我们将第一时间修改或删除,多谢。