moment时间操作

本文介绍了如何使用moment.js库进行日期和时间的常见操作,包括加减日期、获取昨日、本周、本月等时间段,并展示了在antd-pro项目中ProTable组件设置日期范围搜索项的初始值。此外,还提供了在AntDProProTable中设置默认月份搜索值的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、常用时间操作

 当前日期
        moment().format('YYYY-MM-DD')

 日期月份加减操作
        moment().add('-1','days').format('YYYY-MM-DD')  // days 可写作D
        moment().add(-1, 'weeks').format('YYYY-MM-DD')   // weeks可写作 W
        moment().add('-1','months').format('YYYY-MM-DD')   // months可写作 M
        moment().add(-1, 'quarter').format('YYYY-MM-DD')  // quarter 可写作 Q
        moment().add('-1','years').format('YYYY-MM-DD')  // years可写作 Y

 获取时间段

  • 获取昨日时间:
    开始: moment().add('-1','days').format('YYYY-MM-DD'),
    结束: moment().add('-1','days').format('YYYY-MM-DD')
  • 获取本周时间:
    开始: moment().subtract(moment().format('E') -1 , 'days').format('YYYY-MM-DD'),
    结束: moment().format('YYYY-MM-DD')
  • 获取本周开始至本周结束时间
    开始: moment().startOf('isoWeek').format('YYYY-MM-DD')
    结束: moment().endOf('isoWeek').format('YYYY-MM-DD')
  • 获取上周的今天至下周的今天
    开始: moment().add(-1, 'W').format('YYYY-MM-DD')
    结束: moment().add(1, 'W').format('YYYY-MM-DD')
  • 获取本月时间:
    开始: moment().format('YYYY-MM') + '-01',
    结束: moment().format('YYYY-MM-DD')
  • 获取本月所在季度:
    开始: moment().startOf('quarter').format("YYYY-MM-DD"),
    结束: moment().endOf('quarter').format("YYYY-MM-DD")
  • 获取近7天:
    开始: moment().add('-6','days').format('YYYY-MM-DD'),
    结束: moment().format('YYYY-MM-DD')
  • 获取近1月时间
    开始: moment().add('-1','months').format('YYYY-MM-DD'),
    结束: moment().format('YYYY-MM-DD')
  • 获取近3个月时间
    开始: moment().add('-3','months').format('YYYY-MM-DD'),
    结束: moment().format('YYYY-MM-DD')
  • 获取今年时间
    开始: moment().format('YYYY') + '-01-01',
    结束: moment().format('YYYY-MM-DD')
  • 获取近1年时间
    开始: moment().add('-1','year').format('YYYY-MM-DD'),
    结束: moment().format('YYYY-MM-DD')

二、项目实战中用法

  1.   在antd-pro中 Protable 高级表格设置搜索项初始值
    {
        title: '日期',
        width: 140,
        dataIndex: 'xxx',
        valueType: 'dateRange',
        initialValue: [
            moment().add(-1, 'M').startOf('months').format('YYYY-MM-DD'),
            moment().add(-1, 'M').endOf('months').format('YYYY-MM-DD'),
        ],
        hideInTable: true,
        fieldProps: {
            placeholder: ['请选择起始日期', '请选择结束日期'],
            allowClear: false,
        },
    }
  2. 在AntD Pro ProTable 搜索项设置默认值

     useEffect(() => {
        formRef.current?.setFieldsValue({
            month: moment().add(-1, 'M').format('YYYY-MM'),
        });
     }, []);
     // colums类型日期 月份 valueType:'dateMonth'
    {
        title: '月份',
        key: 'month',
        dataIndex: 'month',
        valueType: 'dateMonth',
        hideInTable: true
    },
    

                   
           
                     
                   
              
                   
                   
             
                   
                   

                     
                   

                     
                   

             

moment是一个JavaScript库,用于处理、解析、格式化和操作日期和时间。它提供了许多方便的方法,使得在JavaScript中处理时间变得更加简单和灵活。 moment可以用于创建、解析和格式化日期和时间。你可以使用moment对象来执行各种操作,如添加或减去时间、比较日期、格式化日期等。 以下是moment库的一些常见用法: 1. 创建moment对象: 你可以使用moment()函数来创建一个表示当前时间moment对象,也可以传入一个日期字符串或日期对象来创建指定时间moment对象。 示例: ``` const now = moment(); // 创建表示当前时间moment对象 const specificDate = moment("2022-01-01"); // 创建表示指定日期的moment对象 ``` 2. 格式化日期和时间moment提供了format()方法,用于将日期和时间格式化为指定的字符串格式。 示例: ``` const formattedDate = moment().format("YYYY-MM-DD"); // 格式化当前日期为"YYYY-MM-DD"格式 const formattedTime = moment().format("HH:mm:ss"); // 格式化当前时间为"HH:mm:ss"格式 ``` 3. 操作日期和时间moment提供了许多方法来操作日期和时间,如添加或减去时间、比较日期等。 示例: ``` const tomorrow = moment().add(1, 'day'); // 添加一天 const nextWeek = moment().add(1, 'week'); // 添加一周 const isBefore = moment("2022-01-01").isBefore("2022-02-01"); // 比较日期,判断是否在指定日期之前 ``` moment还提供了许多其他功能,如解析日期字符串、获取日期的部分信息(年、月、日等)、本地化等。你可以根据具体需求查阅moment的官方文档来了解更多用法。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值