博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
时间对象 <-> 定时器 <-> 电子时钟 <-> 倒计时效果
阅读量:4324 次
发布时间:2019-06-06

本文共 4768 字,大约阅读时间需要 15 分钟。

用 moment 获取时间   1.npm install moment --save   # npm   2.使用
import moment from "moment";moment(new Date()).format("MM-DD")

  日期格式化

moment().format('MMMM Do YYYY, h:mm:ss a'); // 五月 24日 2019, 7:47:43 晚上moment().format('dddd');                    // 星期五moment().format("MMM Do YY");               // 5月 24日 19moment().format('YYYY [escaped] YYYY');     // 2019 escaped 2019moment().format();                          // 2019-05-24T19:47:43+08:00

  相对时间

moment("20111031", "YYYYMMDD").fromNow(); // 8 年前moment("20120620", "YYYYMMDD").fromNow(); // 7 年前moment().startOf('day').fromNow();        // 20 小时前moment().endOf('day').fromNow();          // 4 小时内moment().startOf('hour').fromNow();       // 1 小时前

  日历时间

moment().subtract(10, 'days').calendar(); // 2019年5月14日moment().subtract(6, 'days').calendar();  // 上周六晚上7点49moment().subtract(3, 'days').calendar();  // 本周二晚上7点49moment().subtract(1, 'days').calendar();  // 昨天晚上7点49分moment().calendar();                      // 今天晚上7点49分moment().add(1, 'days').calendar();       // 明天晚上7点49分moment().add(3, 'days').calendar();       // 下周一晚上7点49moment().add(10, 'days').calendar();      // 2019年6月3日

  多语言支持

moment().format('L');    // 2019-05-24moment().format('l');    // 2019-05-24moment().format('LL');   // 2019年5月24日moment().format('ll');   // 2019年5月24日moment().format('LLL');  // 2019年5月24日晚上7点50分moment().format('lll');  // 2019年5月24日晚上7点50分moment().format('LLLL'); // 2019年5月24日星期五晚上7点50分moment().format('llll'); // 2019年5月24日星期五晚上7点50分

  实用技巧 — — 例子:

moment().format("YYYY-MM-DD") //格式化显示当前时间`${moment().subtract("month", +1).format("YYYY-MM")}-01` //上一个月的1号`${moment().add("month", -1).format("YYYY-MM")}-01`  //还是上一个月1号 let M = `${moment().format("YYYY-MM")}-01` //本月一号moment(M).add("days", -1).format("YYYY-MM-DD") //上一个月月底 moment().startOf("year").format("YYYY-MM-DD")  //本年的的开始日期,("2019-01-01") moment().endOf("year").format("YYYY-MM-DD")  //本年的的结束日期,("2019-12-31") //moment 转成时间戳 moment().valueOf() //时间戳 转 moment moment(string).format()

 

时间对象: new Date()

获取当前用户的本地时间(用户的本地时间是不可靠的)     在真正的开发中,要获取服务器的时间(相对安全) 时间戳:     1970年01月01日00时00分00秒到当前的时间     new Date().getTime();  //number类型     Date.now()     + new Date 2018年10月27日,12点43分00秒 下面获取的时间都是数字类型:     获取当前的年份:         t.getFullYear()     获取当前的月份         t.getMonth()         注意:             获取来的值少1个月份,所以要加1     获取日         t.getDate()     获取周几         t.getDay()   周日为0     获取小时:         t.getHours()     获取分钟:         t.getMinutes()     获取秒:         t.getSeconds() 例子:在页面中显示当前时间  ==>  2018年10月28日----周日----21点46分42秒
1     let arr = ['周日','周一','周二','周三','周四','周五','周六']; 2     console.log(['周日','周一','周二','周三','周四','周五','周六'][new Date().getDay()]) 3     function fn(){ 4         let t = new Date(); 5         let y = t.getFullYear(); 6         let m = tDou(t.getMonth()+1); 7         let d = tDou(t.getDate()); 8         let h = tDou(t.getHours()); 9         let mi = tDou(t.getMinutes());10         let se = tDou(t.getSeconds());11         p.innerHTML = y + '年' + m + '月' + d + '日----' + arr[t.getDay()]+'----'  + h +'点'+ mi +'分'+ se +'秒';12     }13     fn(); //上来直接执行,第一下不会闪14     setInterval(fn,1000);15     /*16         小于10补017     */18     function tDou(n){19         return n<10?'0'+n:''+n;20     }

 

倒计时原理:     1.未来的时间     2.现在的时间(每分每秒都在动)     未来的时间 - 现在的时间 = 剩下多少时间     new Date(工作时这儿放服务器时间); 设置时间:         字符串:             new Date('年 月 日 时:分:秒')             new Date('2018 10 27 15:40:00') 数字版:             new Date(年,月,日,时,分,秒)             new Date(2018,9,27,15,40) 注意:                 设置月份的时候要减1 转换公式:
1 let d = Math.floor(t/86400);2 t %= 86400;3 let h = Math.floor(t/3600);4 t %= 3600;5 let m = Math.floor(t/60);6 t %= 60;

例子:在页面中显示到未来某个时间的倒计时   ==>   00天17时37分50秒

1 let newdate = new Date('2018 10 28 16:00:00');  //未来的时间  2     let timer = null; 3     function fn(){ 4         let nowDate = new Date(); //现在的时间 5         let t = Math.floor((newdate - nowDate)/1000); 6         if(t <= 0){ 7             //如果未来的时间 - 现在的时间 小于0,说明现在的时间已经超过了设置的时间,所以关闭定时器 8             clearInterval(timer); 9         }else{10             let d = Math.floor(t/86400);   //111             t %= 86400;  12             let h = Math.floor(t/3600);13             t %= 3600;14             let m = Math.floor(t/60);15             t %= 60;16             p.innerHTML = tDou(d)+'天'+tDou(h)+'时'+tDou(m)+'分'+tDou(t)+'秒';17         }18     }19 20     fn();//上来就先调用一次,避免有闪的现象21 22     timer = setInterval(fn,1000);//开启定时器23 24     function tDou(n){  //补零25         return n<10?'0'+n:''+n;26     }

 


求 一个月有多少天,这个月有几天?   let d = new date   d.setDate(1)//先设置成一号,避免出现计算下下个月的天数的情况           (比如1月30天,而2月最大28天,此时用这个方法会跳过2月,进入3月份,)   d.setMonth(d.getMonth()+1) //设置成下个月   d.setDate(0)  //代表上个月的最后一天  等于知道了这个月有多少天   console.log(d.getDate())

转载于:https://www.cnblogs.com/MrZhujl/p/9867678.html

你可能感兴趣的文章
laravel连接sql server 2008
查看>>
Laravel框架学习笔记之任务调度(定时任务)
查看>>
Laravel 的生命周期
查看>>
Nginx
查看>>
Navicat远程连接云主机数据库
查看>>
Nginx配置文件nginx.conf中文详解(总结)
查看>>
jxl写入excel实现数据导出功能
查看>>
linux文件目录类命令|--cp指令
查看>>
.net MVC 404错误解决方法
查看>>
linux系统目录结构
查看>>
学习进度
查看>>
使用Postmark测试后端存储性能
查看>>
NSTextView 文字链接的定制化
查看>>
第五天站立会议内容
查看>>
最短路径(SP)问题相关算法与模板
查看>>
js算法之最常用的排序
查看>>
Python——交互式图形编程
查看>>
经典排序——希尔排序
查看>>
团队编程项目作业2-团队编程项目代码设计规范
查看>>
英特尔公司将停止910GL、915GL和915PL芯片组的生产
查看>>