Logo

vue之moment使用

photo

2024年03月27日

前言

在日常开发中,我们常常会遇到以下几种场景:

  • 需要对日期进行非标准格式展示,如 :2021年5月11日星期二下午6点42分
  • 需要对日期进行处理,如:要取前24小时的时间 等

在这时候用js原生的new Date()处理就有些麻烦了,因此我们找到了moment这个类库

一、moment是什么?

moment 是一个 JavaScript 日期处理类库。
注:以下所有时间相对于现在时间:2021/05/11/18:42 星期二

1.日期格式化:

  • moment().format('MMMM Do YYYY, h:mm:ss a'); // 五月 11日 2021, 6:42:31 下午
  • moment().format('dddd'); // 星期二
  • moment().format("MMM Do YY"); // 5月 11日 21
  • moment().format('YYYY [escaped] YYYY'); // 2021 escaped 2021
  • moment().format(); //2021-05-11T18:06:42+08:00

2.相对时间:

  • moment("20111031", "YYYYMMDD").fromNow(); // 2011/10/31号相对于现在是: 10 年前
  • moment("20120620", "YYYYMMDD").fromNow(); // 2012/06/20号相对于现在是: 9 年前
  • moment().startOf('day').fromNow(); //当前日期开始即:2021/05/11/00:00:00相对于现在是: 19 小时前
  • moment().endOf('day').fromNow(); //当前日期结束即:2021/05/11/24:00:00相对于现在是: 5 小时内
  • moment().startOf('hour').fromNow(); //当前日期小时开始即:2021/05/11/18:00:00相对于现在是: 42分钟前

3.日历时间:

  • moment().subtract(10, 'days').calendar(); // 当前时间往前推10天的日历时间: 2021/05/01
  • moment().subtract(6, 'days').calendar(); // 当前时间往前推6天: 上星期三18:42
  • moment().subtract(3, 'days').calendar(); // 当前时间往前推3天: 上星期六18:42
  • moment().subtract(1, 'days').calendar(); // 当前时间往前推1天: 昨天18:42
  • moment().calendar(); // 今天18:42
  • moment().add(1, 'days').calendar(); // 当前时间往后推1天: 明天18:42
  • moment().add(3, 'days').calendar(); // 当前时间往后推3天: 下星期五18:42
  • moment().add(10, 'days').calendar(); // 当前时间往后推10天: 2021/05/21

4.多语言支持:

  • moment.locale(); // zh-cn
  • moment().format('LT'); // 18:42
  • moment().format('LTS'); // 18:42:31
  • moment().format('L'); // 2021/05/11
  • moment().format('l'); // 2021/5/11
  • moment().format('LL'); // 2021年5月11日
  • moment().format('ll'); // 2021年5月11日
  • moment().format('LLL'); // 2021年5月11日下午6点42分
  • moment().format('lll'); // 2021年5月11日 18:42
  • moment().format('LLLL'); // 2021年5月11日星期二下午6点42分
  • moment().format('llll'); // 2021年5月11日星期二 18:42

二、使用步骤(例:默认查询时间24小时之前~当前时间)

1.引入库

$ npm install moment --save

2.在main.js中全局引入(也可单独在使用的文件中引入,具体看需求)

import moment from "moment"
Vue.prototype.$moment = moment;

3.在需要使用日期的地方使用

HTML中:

 <el-date-picker
    	v-model="timeRange"
        type="datetimerange"
        range-separator=""
        start-placeholder="开始日期"
        end-placeholder="结束日期">
 </el-date-picker>

JS中:

 data() {
      return {
         timeRange:[],
      }
   },
  mounted(){
        let start = this.$moment()
            .subtract('1', 'd')
            .format('YYYY-MM-DD HH:mm:ss') //当前时间往前推1天(24小时):2021-05-10 18:42:53
        let end = this.$moment().format('YYYY-MM-DD HH:mm:ss') //当前时间:2021-05-11 18:42:53
        this.timeRange=[start,end]
   },  

三、日期格式

格式含义举例备注
yyyy2021同YYYY
M1不补0
MM01
d2不补0
dd02
dddd星期星期二
H小时324小时制;不补0
HH小时1824小时制
h小时312小时制,须和 A 或 a 使用;不补0
hh小时0312小时制,须和 A 或 a 使用
m分钟4不补0
mm分钟04
s5不补0
ss05
AAM/PMAM仅 format 可用,大写
aam/pmam仅 format 可用,小写

具体方法以及参数可详见moment官方文档

四、new Date() 相关

日期都写这么多了,那new Date()也一起总结下吧

	let time = new Date();  //获取当前时间  Tue May 11 2021 18:42:51 GMT+0800 (中国标准时间)

    let year = time.getFullYear();  //获取年 2021
    let month = time.getMonth() + 1;  //获取月  5
    let day = time.getDate();    //获取天  11

    let h = time.getHours();   //获取小时  18
    let m = time.getMinutes();  //获取分钟  42
    let s = time.getSeconds();    //获取秒  51

    let weekDay = time.getDay();  //获取星期  2

橙子主题打折出售

其实我不卖,主要是这里是放广告的,所以就放了一个
毕竟主题都没做完,卖了也是坑.

购买它
所有附件
该文章没有附件.
本文为原创文章,请注意保留出处!

使用Nginx要在同一个域名下配置多个项目有两种方式:nginx按不同的目录分发给不同的项目启用...Nginx同一个域名配置多个项目

热门文章

无法握住的故土 在我们心灵最温暖的角落,总有一寸土地是属于故乡的。虽然我们看似已远离故土,可骨子里对故乡的依恋却是从未冷却过。我们无论漂泊他乡,还是在繁华都市平步青云,可故乡的悠悠情思总会潜入梦乡与你缠绵。是儿时那一缕缕茉莉的清香萦绕在梦境,也是邻家那已锈迹斑斑的铁壶里,开出艳丽的花儿在梦的边缘摇曳。故土就这样根深蒂固地在我们的灵魂深处烙下深深的印记。 作者:Pastore Antonio
1596 浏览量
EWS(Exchange Service)基本使用(获取个人会议,会议室会议内容,会议室列表,发送会议,修改会议,删除会议) 最近公司要求和exchange服务对接,所以稍微研究了一下官方文档,做出以下总结,欢迎大家补充。先...EWS(ExchangeService)基本使用(获取个人会议,会议室会议内容,会议室列表,发送会议,修改会议,删除会议) 作者:Pastore Antonio
1585 浏览量
Sql Server 部署SSIS包完成远程数据传输 本篇介绍如何使用SSIS和作业完成自动更新目标数据任务。**温馨提示:如需转载本文,请注明...SqlServer部署SSIS包完成远程数据传输 作者:Pastore Antonio
1579 浏览量
SQL Server AG集群启动不起来的临时自救大招 背景前晚一朋友遇到AG集群发生来回切换不稳定的情况,情急之下,朋友在命令行使用命令重启WSFC集群...SQLServerAG集群启动不起来的临时自救大招 作者:Pastore Antonio
1573 浏览量
windows 下安装 memcahce 官网上并未提供Memcached的Windows平台安装包,我们可以使用以下链接来下载,你需...windows下安装memcahce 作者:Pastore Antonio
1567 浏览量