时间戳转换

  const nowTime = moment().format();console.log('获取当前时间', nowTime);const nowSecondTimestamp = moment(nowTime).unix();console.log('当前时间转换为秒级时间戳', nowSecondTimestamp);const nowMillisecondTimestamp = moment(nowTime).valueOf();console.log('当前时间转换为毫秒级时间戳', nowMillisecondTimestamp);

年份操作

   const thisYear = moment(nowTime).format('YYYY');console.log('获取当前年份', thisYear);const preYear = moment(nowTime).subtract(1, 'year').format('YYYY');console.log('获取现在时间的上一个年份', preYear);const targetPreYear = moment(preYear).subtract(1, 'year').format('YYYY');console.log('获取指定年份的上一年', targetPreYear);

月份操作

const thisMonth = moment(nowTime).format('MM');
console.log('获取当前月份', thisMonth);const preMonth = moment(nowTime).subtract(1, 'month').format('MM');
console.log('获取上个月份', preMonth);const thisMonthDays = moment(nowTime).daysInMonth();
console.log('获取当天月份天数', thisMonthDays);const preMonthDays = moment(nowTime).subtract(1, 'month').daysInMonth();
console.log('获取上个月份天数', preMonthDays);const targetMonthDays = moment(preMonth).daysInMonth();
console.log('获取指定月份天数', targetMonthDays);const thisMonthFirstDays = moment(nowTime).startOf('month').format('YYYY-MM-DD HH:mm:ss');
console.log('当月第一天', thisMonthFirstDays);const thisMonthEndDays = moment(nowTime).endOf('month').format('YYYY-MM-DD HH:mm:ss');
console.log('当月最后一天', thisMonthEndDays);const thisMonthFirstDaysBeforce7Days = moment(thisMonthFirstDays).subtract(7, 'day').format('YYYY-MM-DD HH:mm:ss');
console.log('当月第一天前七天', thisMonthFirstDaysBeforce7Days);const thisMonthEndDaysBeforce7Days = moment(thisMonthEndDays).subtract(7, 'day').format('YYYY-MM-DD HH:mm:ss');
console.log('当月月底前七天', thisMonthEndDaysBeforce7Days);const thisMonthFirstDaysAfter7Days = moment(thisMonthFirstDays).subtract(-7, 'day').format('YYYY-MM-DD HH:mm:ss');
console.log('当月第一天后七天', thisMonthFirstDaysAfter7Days);const thisMonthEndDaysAfter7Days = moment(thisMonthEndDays).subtract(-7, 'day').format('YYYY-MM-DD HH:mm:ss');
console.log('当月月底后七天', thisMonthEndDaysAfter7Days);const preMonthSecondDay = moment(nowTime).subtract(1, 'month').startOf('month').subtract(-2, 'week').format('YYYY-MM-DD HH:mm:ss');
console.log('上个月第二周周一', preMonthSecondDay);const thisMonthSecondDay = moment(nowTime).startOf('month').subtract(-2, 'week').format('YYYY-MM-DD HH:mm:ss');
console.log('当月第二周周一', thisMonthSecondDay);const nextMonthSecondDay = moment(nowTime).subtract(-1, 'month').startOf('month').subtract(-2, 'week').format('YYYY-MM-DD HH:mm:ss');
console.log('下个月第二周周一', nextMonthSecondDay);const targetMonthStartTime = moment('2021-02').startOf('month').format('YYYY-MM-DD HH:mm:ss');
const targetMonthEndTime = moment('2021-02').endOf('month').format('YYYY-MM-DD HH:mm:ss');
console.log('指定月份的开始和结束时间', targetMonthStartTime, targetMonthEndTime);const monthDiff = moment(nowTime).diff('2021-01', 'month', true);
console.log('比较两个时间相差月份', monthDiff);const nextMonthFirstDay = moment(nowTime).add(1, 'month').startOf('month').format('YYYY-MM-DD HH:mm:ss');
console.log('获取下个月第一天', nextMonthFirstDay);const nextMonthLastDay = moment(nowTime).add(1, 'month').endOf('month').format('YYYY-MM-DD HH:mm:ss');
console.log('获取下个月最后一天', nextMonthLastDay);

星期操作

const thisDateWeek = moment(nowTime).day();
console.log('获取当前时间是周几 星期', thisDateWeek);const thisMonthFirstWeekStartTime = moment(nowTime).startOf('week').add(1, 'day').format('YYYY-MM-DD HH:mm:ss');
const thisMonthFirstWeekEndTime = moment(nowTime).endOf('week').add(1, 'day').format('YYYY-MM-DD HH:mm:ss');
console.log('本周开始和结束时间', thisMonthFirstWeekStartTime, thisMonthFirstWeekEndTime);const thisMonthFirstMonthStartTime = moment(nowTime).startOf('month').format('YYYY-MM-DD HH:mm:ss');
const thisMonthFirstMonthEndTime = moment(nowTime).endOf('month').format('YYYY-MM-DD HH:mm:ss');
console.log('本月开始和结束时间', thisMonthFirstMonthStartTime, thisMonthFirstMonthEndTime);// 比较两个时间相差星期
const weekDiff = moment(nowTime).diff('2021-01', 'week', true);
console.log('比较相差的星期', weekDiff);const preeWeek = moment(nowTime).subtract(1, 'week').format('YYYY-MM-DD HH:mm:ss');
console.log('一周前的时间', preeWeek);// 在这里需要加2天 是因为 moment的星期天是从0开始
const preeTuesday = moment(nowTime).subtract(1, 'week').startOf('week').add(2, 'day').format('YYYY-MM-DD HH:mm:ss');
console.log('上周二', preeTuesday);const thisTuesday = moment(nowTime).startOf('week').add(2, 'day').format('YYYY-MM-DD HH:mm:ss');
console.log('本周二', thisTuesday);const nextTuesday = moment(nowTime).startOf('week').add(1, 'week').add(2, 'day').format('YYYY-MM-DD HH:mm:ss');
console.log('下周二', nextTuesday);

指定天操作

// 比较两个时间相差的天数
const dayDiff = moment(nowTime).diff('2021-01', 'day', true);
console.log('比较相差的天数', dayDiff);const beforeTenDays = moment(nowTime).subtract(7, 'day').format('YYYY-MM-DD HH:mm:ss');
console.log('查看七天前的日期', beforeTenDays);// 时分秒操作const isBeforeDate = moment('2021-02-01').isBefore('2021-01-01');
console.log('是否在指定时间之前', isBeforeDate);const isAfter = moment('2021-02-01').isAfter('2021-01-01');
console.log('是否在指定时间之后', isAfter);const isSame = moment('2021-02-01').isSame('2021-02-01');
console.log('是否相同时间', isSame);// 时间校验console.log('校验是否争取的时间格式', moment('202112312asdxzsc').isValid());

moment.js 时区转换

根据本地时区 将传入的中国时间戳转换为标准的格林威治时间戳

// 将传入的中国时间戳 转换为格林威治时间戳
transferTimeStamp(time){// 中国时区const chinaOffset = 8;// 目标时间 同一个时间在不同地区中的时间戳不同const defaultTime = time * 1000; //1626364800  2021/7/16 00:00:00// 获取指定时间戳和格林威治时间相差的毫秒数const localOffset = new Date(defaultTime).getTimezoneOffset() * 60000;// 得到完整的格林威治时间const utc = defaultTime + localOffset;// 获取指定时间戳和格林威治时间差  小时const offset = Math.abs(localOffset / 1000) / (60 * 60);// 获取中国时间和本地时间的时间差let diff = offset - chinaOffset;// 减去和中国时区相差的时间(同一个时间在不同地区中的时间戳不同) 得到最终的本地时间戳const localTime = utc + 3600000 * offset - 3600000 * diff;return localTime / 1000;
}

根据本地时区 将传入的YYYY-MM-DD时间转换为标准的格林威治时间戳

// 将传入的YYYY-MM-DD时间转换为格林威治时间
transferTime(time){// 目标时间const defaultTime = time;// 本地指定时间时间戳const defaultNumberTime = new Date(defaultTime).getTime();// 获取本地时间和格林威治时间相差的毫秒数let localOffset = new Date().getTimezoneOffset() * 60000;localOffset = localOffset > 0 ? -localOffset : localOffset;// 得到完整的格林威治时间const utc = defaultNumberTime + localOffset;// 获取本地时间和格林威治时间差 小时const offset = Math.abs(localOffset / 1000) / (60 * 60);const localTime = utc + 3600000 * offset;return localTime / 1000;
}

根据本地时区 将传入的中国时间戳转换为标准的YYYY-MM-DD时间

// 转换目标时间 得到指定时间格式
transferTimeFormat(time){// 目标时间const defaultTime = time;// 本地指定时间时间戳const defaultNumberTime = new Date(defaultTime).getTime();// 获取本地时间和格林威治时间相差的毫秒数let localOffset = new Date().getTimezoneOffset() * 60000;localOffset = localOffset > 0 ? -localOffset : localOffset;// 得到完整的格林威治时间const utc = defaultNumberTime + localOffset;// 获取本地时间和格林威治时间差 小时const offset = Math.abs(localOffset / 1000) / (60 * 60);const localTime = utc + 3600000 * offset;const localTimeFormat = moment(localTime).format('YYYY-MM-DD');return localTimeFormat;
}

moment.js 常用用法及时区转换相关推荐

  1. prototype.js常用函数及其用法

    prototype.js常用函数: 函数名  解释  举例  Element.toggle  交替隐藏或显示  Element.toggle(''div1'',''div2'')  Element.h ...

  2. 前端常用时间工具 -- Moment.js常见用法总结

    Moment.js常见用法总结 文章目录 Moment.js常见用法总结 Moment.js常见用法总结 获取时间 Start of Time End of Time Timestamp Get Ti ...

  3. C#常用日期格式处理转换

    转!!!!!C#常用日期格式处理转换[C#日期格式转换大全] 2011-04-20 13:39 有时候我们要对时间进行转换,达到不同的显示效果 默认格式为:2005-6-6 14:33:34 如果要换 ...

  4. jquery和js常用函数

    jquery函数大全转载 Jquery常用的函数,当作参考工具来用 Attribute: $("p").addClass(css中定义的样式类型); 给某个元素添加样式 $(&qu ...

  5. javascript功能插件大集合 前端常用插件 js常用插件

    包管理器 管理着 JavaScript 库,并提供读取和打包它们的工具. npm:npm 是 JavaScript 的包管理器.官网 Bower:一个 web 应用的包管理器.官网 component ...

  6. Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性  应该内置到语言里面...

    Atitit.跨语言 java c#.net php js常用的codec encode算法api 兼容性  应该内置到语言里面 1. 常用算法1 1.1. 目录2 1.2. 定义和用法编辑2 1.3 ...

  7. 【Data Mining】机器学习三剑客之Numpy常用用法总结

    点击"小詹学Python",选择"置顶"公众号 重磅干货,第一时间送达 本文转载自AI蜗牛车,禁二次转载 一.前言 玩数据分析.数据挖掘.AI的都知道这个pyt ...

  8. JS常用属性方法大全

    JS常用属性方法大全 1.输出语句:document.write(""); 2.JS中的注释为: 3.传统的HTML文档顺序是:document->html->(hea ...

  9. [转]ssh常用用法小结

    ssh常用用法小结 1.连接到远程主机: 命令格式 : ssh name@remoteserver 或者 ssh remoteserver -l name 说明:以上两种方式都可以远程登录到远程主机, ...

最新文章

  1. ABP 重写主键ID
  2. poj3114Countries in War(缩点+DIJK)
  3. eladmin代码自动生成_如何让 Mybatis 自动生成代码
  4. php自定义能过滤器,过滤器与自定义过滤器的介绍
  5. mysql workbench 1064_MySQL Workbench:查询错误(1064):第1行“ VISIBLE”附近的语?mysql-问答-阿里云开发者社区-阿里云...
  6. Java数组及二维数组初始化与赋值方法总结
  7. IIS7批量FTP客户端工具软件
  8. matlab mex 矩阵,如何从mex函数访问matlab结构字段中的矩阵?
  9. linux装go环境脚本,linux中用shell快速安装配置Go语言的开发环境
  10. junit可执行但控制层无法执行_解决junit5无法使用gradle test运行测试
  11. ubuntu wine protel 99se安装
  12. bh1750采集流程图_基于BH1750的光照度检测)教程.doc
  13. linux 串口操作
  14. 基于STC89C51单片机,CH340芯片的下载电路
  15. 要闻君说:阿里云联合8家芯片模组商推出“全平台通信模组”;北汽与小桔车服联合“京桔”;IBM要帮助印度公司打造5G战略!...
  16. pymysql 插入错误:Warning(1265, “Data truncated for column ‘XXXX‘ at row xxx“)
  17. 基于springboot小型车队管理系统毕业设计源码061709
  18. ZigBee网络信标(Beacon)和非信标(Non-beacon)两种工作模式
  19. Spring Boot 实战(3)静态资源配置
  20. 虚拟摄像头之十: Camera3 DeviceSession 和 CaptureRequest 流程机制

热门文章

  1. 安卓点击按钮实现缩放效果,点击完成恢复原状~~
  2. Oracle数据库的乘号是什么,(Oracle数据库设计实验指导书yk.doc
  3. html旋转及自适应
  4. layui弹框确认及取消按钮
  5. Jmeter压力测试笔记(十三)
  6. js实现类似查看更多的功能
  7. 客户端软件的压力测试包含,什么是软件压力测试
  8. 手写一个http容器【上】决策树与路由表
  9. JSONObject简介
  10. 经济学家眼中的数字货币:与时俱进(监管篇)