资讯专栏INFORMATION COLUMN

时间格式化及操作(moment.js篇)

Forelax / 1416人阅读

摘要:在里面全局使用引入使用中文时间其他地方调用的方法获取当前时间返回当前时间时间对象返回当前时间毫秒数返回结果格式化当前时间格式化时间戳以秒为单位格式化时间戳以毫秒为单位原生对象同对象相互转换转换为对象转换为对象当前时间取值操

# moment.js ## 在vue里面全局使用

main.js

// 引入moment
import moment from "moment"
import "moment/locale/zh-cn"

// 使用中文时间
moment.locale("zh-cn")
Vue.prototype.$moment = moment

vue其他地方调用的方法

this.$moment().format("YYYY-MM-DD")
## 获取当前时间
//返回当前时间moment()时间对象
moment();
moment(new Date());
//返回当前时间毫秒数
moment().valueOf() === Date.now() === new Date().getTime() === new Date().valueOf()

返回结果:2018-08-23T08:35:36.653 / 1534986255282

## 格式化当前时间
let today = moment().format("YYYY-MM-DD");
moment(new Date()).format("YYYY/MM/DD HH:mm:ss");

//格式化时间戳(以秒为单位)
moment().format("X")
//格式化时间戳(以毫秒为单位)
moment().format("x") === moment().valueOf();

## 原生Date对象同moment对象相互转换
//转换为date对象
moment().toDate() === new Date(moment())
//转换为moment对象
moment(new Date())
## 当前时间-取值操作
//获取当前时间年数
moment().year() === new Date().getFullYear() === moment().get("y")
//获取当前时间月数
moment().month()+1 === new Date().getMonth()+1
//获取当前时间秒数
moment().seconds() === moment().second() === new Date().getMonth()
//获取当前时间毫秒数
moment().millisecond() === moment().milliseconds()
## subtract()
//七天前的时间
let last7 = moment().subtract(6 ,"days").format("YYYY-MM-DD");
//本周第一天,周日
moment().day(0).format("YYYY-MM-DD");
//拓展-2018-07-5后一天
moment("2018-07-5").subtract(-1 ,"days").format("YYYY-MM-DD");  
//获取上个月今天的日期
moment().subtract(1, "months").format("YYYY-MM-DD");

返回结果:2018-08-17

## add()
//后一天时间
moment().add(1, "d").format("YYYY-MM-DD")
//两小时之后
moment().add(2,"hours").format("YYYY-MM-DD HH:mm:ss");
## 本周五
moment().weekday(5).format("YYYY-MM-DD");
*## 上周五
moment().weekday(-3).format("YYYY-MM-DD");
## 本月第一天
//本月第一天
let thisMonthFirst = moment().startOf("month").format("YYYY-MM-DD");
//本年第一天
let thisYearFirst = moment().startOf("year").format("YYYY-MM-DD");
## 本月最后一天
//本月最后一天
moment().endOf("year").format("YYYY-MM-DD");
//本年最后一天
moment().endOf("month").format("YYYY-MM-DD");
## 上个月最后一天
moment("2018-10-06").date(0).format("YYYY-MM-DD");
## 是否之前
moment("2010-10-20").isBefore("2010-10-21"); // true
moment("2010-10-20").isBefore("2010-12-31", "year"); // false
moment("2010-10-20").isBefore("2011-01-01", "year"); // true
## 是否相同(判断年、月、日)
moment("2010-10-20").isSame("2010-10-20"); // true
moment("2010-10-20").isSame("2009-12-31", "year");  // false
moment("2010-10-20").isSame("2010-01-01", "year");  // true
moment("2010-10-20").isSame("2010-10-31", "month");  // true
moment("2010-10-20").isSame("2011-01-01", "year");  // false
## 是否之后(同是否之前)
moment("2010-10-20").isAfter("2010-01-01", "year"); // false
moment("2010-10-20").isAfter("2009-12-31", "year"); // true
## 是否之间
moment("2010-10-20").isBetween("2010-10-19", "2010-10-25"); // true
## 标准化单位
moment().get("y")           // "year"
moment().get("year")        // "year"
moment().get("years")       // "year"
moment().year()             // "year"
moment().years()            // "year"

moment().get("M")+1         // "month"
moment().get("Month")+1     // "month"
moment().get("Months")+1    // "month"
moment().get("month")+1     // "month"
moment().get("months")+1    // "month"
moment().month()+1
moment().months()+1

moment().get("D")           // "Day"
moment().get("Day") 
moment().get("Days") 
moment().day()
moment().days()

moment().get("H");          // "Hours"
moment().get("Hour");
moment().get("Hours");
moment().get("h");          // "Hours"
moment().get("hour");
moment().get("hours");
moment().hour();
moment().hours();

moment().get("m");          //minute
moment().get("minute");
moment().get("minutes");
moment().get("Minute");
moment().get("Minutes");

moment().get("s");          //second
moment().get("second");
moment().get("seconds");
moment().get("S");
moment().get("Second");
moment().get("Seconds");
moment().second();
monent().seconds();

后记:在使用moment格式化时间的时候经常会出现比实际时间迟8小时的问题,使用utcOffset解决

monent(myDate).utcOffset(0).format("YYYY/MM/DD HH:mm:ss")
monent(myDate).utc(0).format("YYYY/MM/DD HH:mm:ss")

参考文档:Moment.js中文网

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/96928.html

相关文章

  • JS 获取一段时间内的工作时长小时数

    摘要:本来想是想找轮子的,但是并没有找到能用的,多数都是问题很大,所以就自己写了一个需求说明支持自选时间段,即开始时间与结束时间根据用户的上班及下班时间判定返回小时数技术栈思考过程怎么说呢,其实这个逻辑不是很复杂主要是确定起始时间结束时间与打卡上 本来想是想找轮子的,但是并没有找到能用的,多数都是问题很大,所以就自己写了一个 需求说明 支持自选时间段,即开始时间与结束时间根据用户的上班及下班...

    willin 评论0 收藏0
  • JS 获取一段时间内的工作时长小时数

    摘要:本来想是想找轮子的,但是并没有找到能用的,多数都是问题很大,所以就自己写了一个需求说明支持自选时间段,即开始时间与结束时间根据用户的上班及下班时间判定返回小时数技术栈思考过程怎么说呢,其实这个逻辑不是很复杂主要是确定起始时间结束时间与打卡上 本来想是想找轮子的,但是并没有找到能用的,多数都是问题很大,所以就自己写了一个 需求说明 支持自选时间段,即开始时间与结束时间根据用户的上班及下班...

    alexnevsky 评论0 收藏0
  • ⏰Day.js 2kB超轻量时间库 和Moment.js一样的API

    showImg(https://segmentfault.com/img/bV9wV7?w=1952&h=712);Moment.js 是一个大而全的 JS 时间库,很大地方便了我们处理日期和时间。但是 Moment.js太重了(200k+ with locals),可能一般项目也只使用到了她几个常用的API。虽然社区也有几个轻量的时间库,要想迁移过去又会增加新的学习和迁移成本。 如果能有一个和 ...

    CoreDump 评论0 收藏0
  • 时间处理工具 moment.js:管理时间和日期,so easy!

    摘要:大家在项目中一定会遇到很多关于时间处理的问题,比如你想获取一个本地时间格式为,常用的方法是先拿到时间再用正则替换什么的。 大家在项目中一定会遇到很多关于时间处理的问题,比如你想获取一个本地时间格式为YYYY-MM-DD,常用的方法是先拿到时间再用正则替换什么的。比较麻烦,也比较费劲。每次都要弄。所以呢就想着有没有什么简单的方法,之后就发现了一个轻量级的Javascript日期处理类库:...

    lei___ 评论0 收藏0

发表评论

0条评论

Forelax

|高级讲师

TA的文章

阅读更多
最新活动
阅读需要支付1元查看
<