[Moment.js 中文网 (momentjs.cn)](http://momentjs.cn/)
#### 年份、月份、日期的令牌
令牌区分大小写。
| 输入 | 示例 | 描述 |
| --- | --- | --- |
| `YYYY` | `2014` | 4 或 2 位数字的年份 |
| `YY` | `14` | 2 位数字的年份 |
| `Y` | `-25` | 带有任意数字和符号的年份 |
| `Q` | `1..4` | 年份的季度。将月份设置为季度的第一个月 |
| `M MM` | `1..12` | 月份数字 |
| `MMM MMMM` | `Jan..December` | 语言环境中的月份名称,由`moment.locale()`设置 |
| `D DD` | `1..31` | 月的某天 |
| `Do` | `1st..31st` | 月的某天,带序数 |
| `DDD DDDD` | `1..365` | 年的某天 |
| `X` | `1410715640.579` | Unix 时间戳 |
| `x` | `1410715640579` | Unix 毫秒时间戳 |
#### 周年、星期、工作日的令牌
对于这些,小写字母令牌使用语言环境感知的星期开始天数,而大写字母令牌使用[ISO 星期日期](http://nodejs.cn/s/MkHCug)开始天数。
令牌区分大小写。
| 输入 | 示例 | 描述 |
| --- | --- | --- |
| `gggg` | `2014` | 语言环境的 4 位数字的周年 |
| `gg` | `14` | 语言环境的 2 位数字的周年 |
| `w ww` | `1..53` | 语言环境的年的第几周 |
| `e` | `0..6` | 语言环境的星期几 |
| `ddd dddd` | `Mon...Sunday` | 语言环境的星期几的名称,由`moment.locale()`设置 |
| `GGGG` | `2014` | ISO 的 4 位数字的周年 |
| `GG` | `14` | ISO 的 2 位数字的周年 |
| `W WW` | `1..53` | ISO 的年的第几周 |
| `E` | `1..7` | ISO 的星期几 |
#### 语言环境感知的格式
使用`LT LTS L LL LLL LLLL`也可以使用语言环境感知的日期和时间格式。 它们新增于**2.2.1**版本,其中`LTS`新增于**2.8.4**。
令牌区分大小写。
| 输入 | 示例 | 描述 |
| --- | --- | --- |
| `L` | `04/09/1986` | 日期(以本地格式) |
| `LL` | `September 4 1986` | 月份名称、月份日期、年份 |
| `LLL` | `September 4 1986 8:30 PM` | 月份名称、月份日期、年份、时间 |
| `LLLL` | `Thursday, September 4 1986 8:30 PM` | 星期几、月份名称、月份日期、年份、时间 |
| `LT` | `08:30 PM` | 时间(不含秒钟) |
| `LTS` | `08:30:00 PM` | 时间(含秒钟) |
#### 小时、分钟、秒种、毫秒、偏移量的令牌
令牌区分大小写。
| 输入 | 示例 | 描述 |
| --- | --- | --- |
| `H HH` | `0..23` | 小时(24 小时制) |
| `h hh` | `1..12` | 小时(使用`a A`的 12 小时制) |
| `k kk` | `1..24` | 小时(从 1 到 24 的 24 小时制) |
| `a A` | `am pm` | 上午或下午(单一字符`a p`也被视为有效) |
| `m mm` | `0..59` | 分钟 |
| `s ss` | `0..59` | 秒钟 |
| `S SS SSS` | `0..999` | 带分数的秒钟 |
| `Z ZZ` | `+12:00` | 从 UTC 偏移为`+-HH:mm`、`+-HHmm`或`Z` |
Moment.js 使用重载的 getter 和 setter 方法。 此模式类似与其在 jQuery 中的使用。
不带参数调用这些方法会作为 getter,而带参数调用则会作为 setter。
这些会映射到原生`Date`对象上的相应函数。
~~~javascript
moment().seconds(30).valueOf() === new Date().setSeconds(30);
moment().seconds() === new Date().getSeconds();
~~~
如果处于[UTC 模式](http://nodejs.cn/s/t4J2Y4)中,则它们将会映射到 UTC 的等效项。
~~~javascript
moment.utc().seconds(30).valueOf() === new Date().setUTCSeconds(30);
moment.utc().seconds() === new Date().getUTCSeconds();
~~~
>[danger]如果链接多个操作以构造一个日期,则应从年份、月份、日期等依次开始。 否则,可能会得到意外的结果
错误:`moment().date(day).month(month).year(year)`
正确:`moment().year(year).month(month).date(day)`
[millisecond()](http://momentjs.cn/docs/#/get-set/millisecond/) 获取或设置毫秒
接受 0 到 999 之间的数字。 如果超出范围,则它将会冒泡到秒钟
[second()](http://momentjs.cn/docs/#/get-set/second/)获取或设置秒钟
接受 0 到 59 之间的数字。 如果超出范围,则它将会冒泡到分钟
[minute()](http://momentjs.cn/docs/#/get-set/minute/)获取或设置分钟
接受 0 到 59 之间的数字。 如果超出范围,则它将会冒泡到小时。
[hour()](http://momentjs.cn/docs/#/get-set/hour/)获取或设置小时
接受 0 到 23 之间的数字。 如果超出范围,则它将会冒泡到日期
[date()](http://momentjs.cn/docs/#/get-set/date/)获取或设置月份的日期
接受 1 到 31 之间的数字。 如果超出范围,则它将会冒泡达到月份
[day()](http://momentjs.cn/docs/#/get-set/day/)获取或设置星期几
此方法可用于设置星期几,其中星期日为 0、星期六为 6
如果超出范围,则它将会冒泡到其他星期
[weekday()](http://momentjs.cn/docs/#/get-set/weekday/)根据语言环境获取或设置星期几
[isoWeekday()](http://momentjs.cn/docs/#/get-set/iso-weekday/)获取或设置[ISO 星期几](http://nodejs.cn/s/MkHCug),其中`1`是星期一、`7`是星期日
[dayOfYear()](http://momentjs.cn/docs/#/get-set/day-of-year/)获取或设置年份的日期
接受 1 到 366 之间的数字。 如果超出范围,则它将会冒泡到年份
[week()](http://momentjs.cn/docs/#/get-set/week/)获取或设置年份的星期
[isoWeek()](http://momentjs.cn/docs/#/get-set/iso-week/)获取或设置[年份的 ISO 星期](http://nodejs.cn/s/MkHCug)
[month()](http://momentjs.cn/docs/#/get-set/month/)获取或设置月份
[quarter()](http://momentjs.cn/docs/#/get-set/quarter/)获取或设置季度
[year()](http://momentjs.cn/docs/#/get-set/year/)获取或设置年份
[weekYear()](http://momentjs.cn/docs/#/get-set/week-year/)根据语言环境获取或设置周年
[isoWeekYear()](http://momentjs.cn/docs/#/get-set/iso-week-year/)获取或设置[ISO 周年](http://nodejs.cn/s/MkHCug)
[weeksInYear()](http://momentjs.cn/docs/#/get-set/weeks-in-year/)根据语言环境获取当前 moment 年份的周数。
[isoWeeksInYear()](http://momentjs.cn/docs/#/get-set/iso-weeks-in-year/)根据[ISO 星期](http://nodejs.cn/s/MkHCug)获取当前 moment 年份的周数
[get()](http://momentjs.cn/docs/#/get-set/get/)
[set()](http://momentjs.cn/docs/#/get-set/set/)
[max()](http://momentjs.cn/docs/#/get-set/max/)返回给定的 moment 实例的最大值
[min()](http://momentjs.cn/docs/#/get-set/min/)返回给定的 moment 实例的最小值
## [操作](http://momentjs.cn/docs/#/manipulating/)
[add()](http://momentjs.cn/docs/#/manipulating/add/) 通过增加时间来改变原始的 moment
[subtract()](http://momentjs.cn/docs/#/manipulating/subtract/) 通过减去时间来改变原始的 moment
[startOf()](http://momentjs.cn/docs/#/manipulating/start-of/) 通过将原始的 moment 设置为时间单位的开头来对其进行更改(月日分秒等的最小值)
[endOf()](http://momentjs.cn/docs/#/manipulating/end-of/) 通过将原始的 moment 设置为时间单位的末尾来对其进行更改(月日分秒等的最大值)
[max()](http://momentjs.cn/docs/#/manipulating/max/)
[min()](http://momentjs.cn/docs/#/manipulating/min/)
[local()](http://momentjs.cn/docs/#/manipulating/local/) 在原始的 moment 上设置标记,以使用本地时间(而不是原始的 moment 时间)显示 moment
[utc()](http://momentjs.cn/docs/#/manipulating/utc/) 在原始的 moment 上设置标记,以使用 UTC(而不是原始的 moment 时间)显示 moment
[utcOffset()](http://momentjs.cn/docs/#/manipulating/utc-offset/) 取 UTC 偏移量(以分钟为单位)
[zone()](http://momentjs.cn/docs/#/manipulating/timezone-offset/)
## [显示](http://momentjs.cn/docs/#/displaying/)
[format()](http://momentjs.cn/docs/#/displaying/format/)
```
var day = moment("1995-12-25");//Mon Dec 25 1995 00:00:00 GMT+0800
var now =moment().format();
var now =moment("12/25/1995", "MM-DD-YYYY").format();//1995-12-25T00:00:00+08:00
var now =moment('2012 July', 'YYYY MMM', 'en').format();//1995-12-25T00:00:00+08:00
//如果不知道输入字符串的确切格式,但是知道它可能是多种格式之一,则可以使用格式数组
var now =moment("12-25-1995", ["MM-DD-YYYY", "YYYY-MM-DD"]).format();//1995-12-25T00:00:00+08:00
var now =moment(1318781876406).format();//毫秒级2011-10-17T00:17:56+08:00
var now =moment.unix(1318781876).format();//秒级2011-10-17T00:17:56+08:00
//[year, month, day, hour, minute, second, millisecond] 里面的几个参数都可以省略
var now =moment([2010, 1, 14, 15, 25, 50, 125]).format();//2010-02-14T15:25:50+08:00
var now =moment([]).format();//空数组就是当前时间2021-09-26T09:07:27+08:00
```
```
//本月第一天
moment().startOf('month').format('YYYY-MM-DD'); //2020-12-01
//本月最后一天
moment().endOf('month').format('YYYY-MM-DD'); //2020-12-31
//上个月第一天
moment().subtract(1,'month').startOf('month').format('YYYY-MM-DD') //2020-11-01
//上月最后一天
moment().subtract(1,'month').endOf('month').format('YYYY-MM-DD') //2020-11-30
//今年第一天
moment().startOf('year').format('YYYY-MM-DD') //2020-01-01
//去年第一天
moment().subtract(1,'year').startOf('year').format('YYYY-MM-DD') //2019-01-01
//去年后一天
moment().subtract(1,'year').endOf('year').format('YYYY-MM-DD') //2019-12-31
//一年前
moment().subtract(1,'year').format('YYYY-MM-DD'); //2019-12-02
//昨天
moment().subtract(1,'day').format('YYYY-MM-DD') //2020-12-01
//今天
moment().format('YYYY-MM-DD') //2020-12-02
```
- 空白目录
- php语法结构
- 安装与更新
- 开启调试模式及代码跟踪器
- 架构
- 源码分析
- 应用初始化
- 请求流程
- 中间件源码分析
- 请求处理源码分析
- Request源码分析
- 模板编译流程
- 路由与请求流程
- 容器
- 获取目录位置
- 入口文件
- 多应用模式及URL访问
- 依赖注入与容器
- 容器属性及方法
- Container
- App
- facade
- 中间件(middleware)
- 系统服务
- extend 扩展类库
- 笔记
- 配置
- env配置定义及获取
- 配置文件的配置获取
- 单应用模式-(配置)文件目录结构(默认)
- 多应用模式(配置)文件目录结构(配置文件)
- 配置文件
- 应用配置:app.php
- 缓存配置: cache.php
- 数据库配置:database.php
- 路由和URL配置:route.php
- Cookie配置:cookie.php
- Session配置:session.php
- 命令行配置:console.php
- 多语言配置:lang.php
- 日志配置:log.php
- 页面Trace配置:trace.php
- 磁盘配置: filesystem.php
- 中间件配置:middleware.php
- 视图配置:view.php
- 改成用yaconf配置
- 事件
- 例子:省略事件类的demo
- 例子2:完整事件类
- 例子3:事件订阅,监听多个事件
- 解析
- 路由
- 路由定义
- 路由地址
- 变量规则
- MISS路由
- URL生成
- 闭包支持
- 路由参数
- 路由中间件
- 路由分组
- 资源路由
- 注解路由
- 路由绑定
- 域名路由
- 路由缓存
- 跨域路由
- 控制器
- 控制器定义
- 空控制器、空操作
- 空模块处理
- RESTFul资源控制器
- 控制器中间件
- 请求对象Request(url参数)
- 请求信息
- 获取输入变量($_POST、$_GET等)
- 请求类型的获取与伪装
- HTTP头信息
- 伪静态
- 参数绑定
- 请求缓存
- 响应对象Response
- 响应输出
- 响应参数
- 重定向
- 文件下载
- 错误页面的处理办法
- 应用公共文件common.php
- 模型
- 模型定义及常规属性
- 模型数据获取与模型赋值
- 查询
- 数据集
- 增加
- 修改
- 删除
- 条件
- 查询范围scope
- 获取器
- 修改器
- 搜索器
- 软删除
- 模型事件
- 关联预载入
- 模型关联
- 一对一关联
- 一对多关联
- 多对多关联
- 自动时间戳
- 事务
- 数据库
- 查询构造器
- 查询合集
- 子查询
- 聚合查询
- 时间查询
- 视图查询(比join简单)
- 获取查询参数
- 快捷方法
- 动态查询
- 条件查询
- 打印sql语句
- 增
- 删
- 改
- 查
- 链式操作
- 查询表达式
- 分页查询
- 原生查询
- JSON字段
- 链接数据库配置
- 分布式数据库
- 查询事件
- Db获取器
- 事务操作
- 存储过程
- Db数据集
- 数据库驱动
- 视图
- 模板
- 模板配置
- 模板位置
- 模板渲染
- 模板变量与赋值(assign)
- 模板输出替换
- url生成
- 模板详解
- 内置标签
- 三元运算
- 变量输出
- 函数输出
- Request请求参数
- 模板注释及原样输出
- 模板继承
- 模板布局
- 原生PHP
- 模板引擎
- 视图过滤
- 视图驱动
- 验证
- 验证进阶之最终版
- 错误和日志
- 异常处理
- 日志处理
- 调试
- 调试模式
- Trace调试
- SQL调试
- 变量调试
- 远程调试
- 杂项
- 缓存
- Session
- Cookie
- 多语言
- 上传
- 扩展说明
- N+1查询
- TP类库
- 扩展类库
- 数据库迁移工具
- Workerman
- think助手工具库
- 验证码
- Swoole
- request
- app
- Response
- View
- Validate
- Config
- 命令行
- 助手函数
- 升级指导(功能的添加与删除说明)
- siyucms
- 开始
- 添加页面流程
- 列表页加载流程
- 弹出框
- 基础控制器
- 基础模型
- 快速构建
- 表单form构建
- 表格table构建
- MakeBuilder
- 前端组件
- 日期组件
- layer 弹层组件
- Moment.js 日期处理插件
- siyucms模板布局
- 函数即其变量
- 前端页面
- $.operate.方法
- $.modal.方法:弹出层
- $.common.方法:通用方法
- 被cms重写的表格options
- 自定义模板
- 搜索框
- 自定义form表单
- 获取表单搜索参数并组装为url字符串