前端进阶之旅前端进阶之旅
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
  • JavaScript Part 1

    • Ajax总结篇
    • Canvas 绘制八大行星
    • DOM编程之API学习总结篇
    • JavaScript事件机制
    • JavaScript代码片段100个
    • JavaScript作用域分析总结
    • JavaScript原型链回顾
    • JavaScript及jQuery中的各种宽高属性图解
    • JavaScript工程项目的一系列最佳实践
    • JavaScript常用API合集
    • JavaScript数组、字符串、对象常用方法
    • JavaScript数组方法总结篇
    • JavaScript深浅拷贝
    • JavaScript运动框架之速度时间版本
    • JavaScript运行机制Event Loop
    • JavaScript防抖节流原理
    • Javascript中的复制粘贴功能
    • Javascript数组详解
    • OOP之原型与原型链
    • Object.defineProperty详解
    • V8源码浅析JS数组常见方法
    • await 在 forEach 中不生效解决方案
    • iframe+表单跨域提交POST请求
    • javascript笔记总结篇
    • 业务中处理数据结构常用的JS方法
    • 作用域
    • 你真的掌握变量和类型了吗
    • 前后端分离之数据Mock
    • 原型与原型链
    • 原生JS补给(上)
    • 如何写出一个惊艳面试官的深拷贝
    • 带你填一些JS容易出错的坑
    • 彻底弄懂 JavaScript 执行机制
    • 执行上下文 执行栈
    • 正则回顾总结
    • 正则基础知识
    • 正则完整篇
    • 正则表达式
    • 浅析Promise原理
    • 浅谈JavaScript中的异步处理
    • 深拷贝 vs 浅拷贝
    • 聊一聊typeof instanceof 实现原理.
    • 聊一聊闭包
    • 高阶函数map reduce filter
  • JavaScript Part 2

  • CSS

  • HTML

  • Jquery

  • ES6

  • 小程序

  • Vue

  • React

  • 深入React

  • React Native

  • NodeJS

  • Angular

  • TypeScript

  • Webpack

  • 浏览器

  • 移动端

  • 前端工程化

  • Electron

  • HTTP

  • Nginx

  • Linux

  • 数据结构与算法

  • LeetCode算法题

  • 综合

完整面试题地址:
作者:程序员poetry
扫码关注作者公众号:「前端进阶之旅」 每天分享技术干货
前端进阶之旅公众号二维码

moment时间处理相关小结|博客系列

# 一、基础用法

取当天时间,以YYYY年MM月DD日形式显示

var now=moment().format("YYYY年MM月DD日");
@前端进阶之旅: 代码已经复制到剪贴板

任意时间戳格式化,以YYYY-MM-DD HH:mm:ss形式显示

 var t1=moment(1411641720000).format('YYYY-MM-DD HH:mm:ss');
@前端进阶之旅: 代码已经复制到剪贴板

获取前一天日期,格式以YYYY-MM-DD形式显示

var t11=moment().day(0).format('YYYY-MM-DD');
@前端进阶之旅: 代码已经复制到剪贴板

获取本周五日期,格式以YYYY-MM-DD形式显示

var t12=moment().weekday(5).format('YYYY-MM-DD');
@前端进阶之旅: 代码已经复制到剪贴板

获取上周五日期,格式以YYYY-MM-DD形式显示

var t13=moment().weekday(-3).format('YYYY-MM-DD');
@前端进阶之旅: 代码已经复制到剪贴板

获取当前年份、月份、日期

var t14=moment().year()
var t15=moment().month()//此处月份从0开始,当前月要+1
var t16=moment().date();
@前端进阶之旅: 代码已经复制到剪贴板

获取上个月今天的日期,格式以YYYY-MM-DD显示

var t18=moment().subtract(1, 'months').format('YYYY-MM-DD');
@前端进阶之旅: 代码已经复制到剪贴板

获取上个月日期,格式以YYYY-MM显示

var t19=moment().subtract(1, 'months').format('YYYY-MM')
@前端进阶之旅: 代码已经复制到剪贴板

获取前一天日期,格式以YYYY-MM-DD显示

var t20 = moment().subtract(1, 'days').format('YYYY-MM-DD');
@前端进阶之旅: 代码已经复制到剪贴板

获取两个小时之后的时间

var t22=moment().add(2,'hours').format('YYYY-MM-DD HH:mm:ss');
@前端进阶之旅: 代码已经复制到剪贴板

获取五天前的日期

  • 例如:今天2018-7-23,获取到的时间是2018-7-18
var t23=moment().subtract(5, 'days').format('YYYY-MM-DD');
@前端进阶之旅: 代码已经复制到剪贴板

# 二、更多示例

'use strict'
let moment = require('moment');
//获取当前时间
var now = moment().toDate();
console.log(now)
 
//格式化当前时间
now = moment().format('YYYY-MM-DD');
console.log(now);
 
//其它几种格式化方法
now = moment().format('L') // 10/22/2016 
console.log(now);
 
now = moment().format('LL') // October 22, 2016
console.log(now);
 
//格式化当前时间
now = moment().format('YYYY-MM-DD:HH:MM:SS');
console.log(now);
 
//获取这个月初时间
let startMonth = moment().startOf('month').toDate();
console.log(startMonth);
 
//获取今天开始的时间
let dayOfStart = moment().startOf('day').toDate();
console.log(dayOfStart);
 
//获取今天结束的时间
let dayOfEnd = moment().endOf('day').toDate();
console.log(dayOfEnd);
 
 
//获取+n小时
let lateHour = moment().add(2,'hour').toDate();
console.log(lateHour);
 
//获取+n小时
console.log('//获取-n小时')
let beforeHour = moment().subtract(2,'hour').toDate();
console.log(beforeHour);
 
 
//获取+n天
let lateDay = moment().add(+5,'day').toDate();
console.log(lateDay);
 
//获取-n天
let beforeDay = moment().add(-5,'day').toDate();
console.log(beforeDay);
//也可以表示为
beforeDay = moment().subtract(5,'day').toDate();
console.log(beforeDay);
 
console.log('//获取+n月')
let lateMonth = moment().add(2,'month').toDate();
console.log(lateHour);
 
//获取+n月
let beforeMonth = moment().subtract(2,'month').toDate();
console.log(lateHour);
 
 
 
//获取星期
let week = moment().format('dddd');
console.log(week);
 
//获取到现在的年限 如果不满一年显示出具体几个月
let years = moment('2020-12-31').fromNow();
console.log(years);
@前端进阶之旅: 代码已经复制到剪贴板

# 三、综合

import moment from 'moment'

DATE_TODAY: moment().format('YYYY-MM-DD'),//今天
DATE_YESTERDAY: moment().subtract(1, 'days').format('YYYY-MM-DD'), // 昨天
DATE_1_WEEK_BEFORE: moment().subtract(1, 'weeks').format('YYYY-MM-DD'),// 一周前
DATE_2_WEEKS_BEFORE: moment().subtract(2, 'weeks').format('YYYY-MM-DD'),// 两周前
DATE_3_WEEKS_BEFORE: moment().subtract(3, 'weeks').format('YYYY-MM-DD'),// 
DATE_1_MONTH_BEFORE: moment().subtract(1, 'months').format('YYYY-MM-DD'),
DATE_2_MONTH_BEFORE: moment().subtract(2, 'months').format('YYYY-MM-DD'),
DATE_3_MONTHS_BEFORE: moment().subtract(3, 'months').format('YYYY-MM-DD'),
DATE_1_YEAR_BEFORE: moment().subtract(1, 'years').format('YYYY-MM-DD'),

DATE_3_MONTHS_AFTER: moment().add(3, 'months').format('YYYY-MM-DD'),
DATE_1_YEAR_AFTER: moment().add(1, 'year').format('YYYY-MM-DD'),

DATE_FIRST_DAY_OF_MONTH: moment().startOf('month').format('YYYY-MM-DD'),
DATE_LAST_DAY_OF_MONTH: moment().endOf('month').format('YYYY-MM-DD'),

DATE_7_DAYS_BEFORE: moment().subtract(7, 'days').format('YYYY-MM-DD'),
DATE_30_DAYS_BEFORE: moment().subtract(30, 'days').format('YYYY-MM-DD'),
DATE_90_DAYS_BEFORE: moment().subtract(90, 'days').format('YYYY-MM-DD'),
DATE_100_DAYS_BEFORE: moment().subtract(100, 'days').format('YYYY-MM-DD'),
@前端进阶之旅: 代码已经复制到剪贴板
// 最近一个小时时间戳
new Date(moment().add(1, 'h').format('YYYY-MM-DD hh:mm:ss')).getTime()

// 格式化时间戳为日期 2018-12-06:12:21
moment(时间戳 * 1000).format('YY-MM-DD:HH:mm:ss')

// 计算时间当前时间和最近一小时时间差 差分钟
const oneHourBefore = new Date(moment().add(1, 'h').format('YYYY-MM-DD hh:mm:ss')).getTime()
const currTime = Date.now()
const minute = moment(currTime).diff(oneHourBefore), 'minute')
@前端进阶之旅: 代码已经复制到剪贴板

# 四、其他

/** 
 * [getTimeList description] 生成时间列表 
 * @param  {[type]} hours [description] 小时 
 * @param  {[type]} step  [description] 分段 
 * @return {[type]}       [description] 时间段列表 
 */  
function getTimeList(hours, step){  
    var minutes = 60  
    var timeArr = []  
    hours = hours  
    step = step   
  
    for(var i = 0; i < hours; i++){  
        var str = ''  
        if(i < 10) {  
            str = 0 + '' + i  
        } else {  
            str = '' + i  
        }  
  
        for(var j = 0; j < minutes; j++) {  
            if(j % step == 0){  
                var s = j < 10 ? ':' + 0 + '' + j : ':' +  j;  
                s = str + s  
                timeArr.push(s)  
            }  
        }  
    }  
  
    return timeArr;  
  
}  
getTimeList(12, 15)  
@前端进阶之旅: 代码已经复制到剪贴板

# 五、更多参考

  • Moment.js常见用法总结

← Jenkins自动部署前端项目shell脚本入门 →

fe
基础篇
进阶篇
高频篇
精选篇
手写篇
面经篇
AI 篇
原理篇
每日一题
小程序题库
知识卡片NEW
  • 历年面经按年份追踪真实考点
  • 算法题库NEW在线编码即时判题
  • 专项自测100 题快速查漏
  • 业务场景题真实业务问题与追问
  • 查漏补缺常见问题解析
  • AI 模拟面试NEW模拟真实面试 + 报告
  • 前端基础
    • HTTP从报文一路讲到 HTTPS
    • 浏览器渲染、事件循环、进程
    • 计算机基础Linux、网络、操作系统
  • 进阶专项
    • 设计模式23 种模式怎么用
    • 前端系统进阶学习大型项目工程化
    • 前端综合文章长期沉淀的实践文
  • 工程与工具
    • Node学习指南从环境搭建到服务端
    • NPM工作流script、依赖与发布
    • Docker容器化部署上手
    • Canvas图形与动画实战
  • 路线与导图
    • 思维导图知识点全景图
    • 学习路线按图索骥不跑偏
    • AI 定制路线NEW按你的简历现排
    • AI 知识地图NEW串起全站知识点
  • 动态
    • AI 热点NEWAI 每日动态
    • 公众号动态公众号历史文章
    • 博客动态站长的技术博客
    • 开发者导航常用工具与文档站
AI 助手NEW
旧版
  • JavaScript Part 1

    • Ajax总结篇
    • Canvas 绘制八大行星
    • DOM编程之API学习总结篇
    • JavaScript事件机制
    • JavaScript代码片段100个
    • JavaScript作用域分析总结
    • JavaScript原型链回顾
    • JavaScript及jQuery中的各种宽高属性图解
    • JavaScript工程项目的一系列最佳实践
    • JavaScript常用API合集
    • JavaScript数组、字符串、对象常用方法
    • JavaScript数组方法总结篇
    • JavaScript深浅拷贝
    • JavaScript运动框架之速度时间版本
    • JavaScript运行机制Event Loop
    • JavaScript防抖节流原理
    • Javascript中的复制粘贴功能
    • Javascript数组详解
    • OOP之原型与原型链
    • Object.defineProperty详解
    • V8源码浅析JS数组常见方法
    • await 在 forEach 中不生效解决方案
    • iframe+表单跨域提交POST请求
    • javascript笔记总结篇
    • 业务中处理数据结构常用的JS方法
    • 作用域
    • 你真的掌握变量和类型了吗
    • 前后端分离之数据Mock
    • 原型与原型链
    • 原生JS补给(上)
    • 如何写出一个惊艳面试官的深拷贝
    • 带你填一些JS容易出错的坑
    • 彻底弄懂 JavaScript 执行机制
    • 执行上下文 执行栈
    • 正则回顾总结
    • 正则基础知识
    • 正则完整篇
    • 正则表达式
    • 浅析Promise原理
    • 浅谈JavaScript中的异步处理
    • 深拷贝 vs 浅拷贝
    • 聊一聊typeof instanceof 实现原理.
    • 聊一聊闭包
    • 高阶函数map reduce filter
  • JavaScript Part 2

  • CSS

  • HTML

  • Jquery

  • ES6

  • 小程序

  • Vue

  • React

  • 深入React

  • React Native

  • NodeJS

  • Angular

  • TypeScript

  • Webpack

  • 浏览器

  • 移动端

  • 前端工程化

  • Electron

  • HTTP

  • Nginx

  • Linux

  • 数据结构与算法

  • LeetCode算法题

  • 综合