moment.js 日期包装类 (说明示例)
moment.js 日期包装类
Moment.js
1创建时间对象
moment(); 当前时间
moment(new Date(2020, 3, 7)); date 对象创建
moment(1318781876406); 时间戳创建
moment("12-25-1995", "MM-DD-YYYY"); 日期文字+日期格式
moment("12-25-1995", ["MM-DD-YYYY", "YYYY-MM-DD"]);
moment([year, month , date , hours , minutes , seconds , milliseconds ]); 数组创建
moment.unix(Number) unix时间
日期格式表
Input |
Output |
M or MM |
Month Number (1 - 12) |
MMM or MMMM |
Month Name (In currently language set by `moment.lang()`) |
D or DD |
Day of month |
DDD or DDDD |
Day of year |
d, dd, ddd, or dddd |
Day of week (NOTE: these tokens are not used to create the date, as there are 4-5 weeks in a month, and it would be impossible to get the date based off the day of the week) |
YY |
2 digit year (if greater than 70, will return 1900's, else 2000's) |
YYYY |
4 digit year |
a or A |
AM/PM |
H, HH |
24 hour time |
h, or hh |
12 hour time (use in conjunction with a or A) |
m or mm |
Minutes |
s or ss |
Seconds |
S |
Deciseconds (1/10th of a second) |
SS |
Centiseconds (1/100th of a second) |
SSS |
Milliseconds (1/1000th of a second) |
Z or ZZ |
Timezone offset as `+0700` or `+07:30` Available in version *1.2.0* |
Key |
Shorthand |
year |
y |
month |
M |
week |
w |
day |
d |
hour |
h |
minutes |
m |
seconds |
s |
millisecond |
ms |
2 修改时间对象
2.1 加减
moment().add(1000) 加毫秒
moment().add('days', 7) 加7天
moment().subtract('days', 7); 减7天
moment().add({days:-7,months:1}); 加1月,减7天
2.2设值
moment().seconds(30); year/month/date/day/minutes/seconds 方法
moment().seconds(); 取值
设首/尾
moment().startOf('year'); // set to Jan 1 12:00:00.000 pm this year
moment().startOf('month'); // set to the first of this month, 12:00:00.000 pm
moment().startOf('day'); // set to 12:00:00.000 pm today
moment().startOf('hour'); // set to now, but with 0 mins, 0 secs, and 0 ms
moment().startOf('minute'); // set to now, but with 0 seconds and 0 milliseconds
moment().startOf('second'); // same as moment().milliseconds(0);
moment().endOf('year');
moment().sod(); 当天头
moment().eod(); 当天尾
3 格式化输出
moment().format("dddd, MMMM Do YYYY, h:mm:ss a");
Token |
Output |
Month |
|
M |
1 2 ... 11 12 |
Mo |
1st 2nd ... 11th 12th |
MM |
01 02 ... 11 12 |
MMM |
Jan Feb ... Nov Dec |
MMMM |
January February ... November December |
Day of Month |
|
D |
1 2 ... 30 30 |
Do |
1st 2nd ... 30th 31st |
DD |
01 02 ... 30 31 |
Day of Year |
|
DDD |
1 2 ... 364 365 |
DDDo |
1st 2nd ... 364th 365th |
DDDD |
001 002 ... 364 365 |
Day of Week |
|
d |
0 1 ... 5 6 |
do |
0th 1st ... 5th 6th |
ddd |
Sun Mon ... Fri Sat |
dddd |
Sunday Monday ... Friday Saturday |
Week of Year |
|
w |
1 2 ... 52 53 |
wo |
1st 2nd ... 52nd 53rd |
ww |
01 02 ... 52 53 |
Year |
|
YY |
70 71 ... 29 30 |
YYYY |
1970 1971 ... 2029 2030 |
AM/PM |
|
A |
AM PM |
a |
am pm |
Hour |
|
H |
0 1 ... 22 23 |
HH |
00 01 ... 22 23 |
h |
1 2 ... 11 12 |
hh |
01 02 ... 11 12 |
Minute |
|
m |
0 1 ... 58 59 |
mm |
00 01 ... 58 59 |
Second |
|
s |
0 1 ... 58 59 |
ss |
00 01 ... 58 59 |
Timezone |
|
z or zz |
EST CST ... MST PST **Note:** as of *1.6.0*, the z/zz format tokens have been deprecated. [Read more about it here.](https://github.com/timrwood/moment/issues/162) |
Z |
-07:00 -06:00 ... +06:00 +07:00 |
ZZ |
-0700 -0600 ... +0600 +0700 Z and ZZ are available in version *1.2.0* |
Localized date format |
|
LT |
8:30 PM LT is available in version *1.3.0* |
L |
07/10/1986 |
LL |
July 10 1986 |
LLL |
July 10 1986 8:30 PM |
LLLL |
Saturday, July 10 1986 8:30 PM L, LL, LLL, LLLL are available in version *1.3.0* |
4 比较
var a = moment([2007, 0, 29]);
var b = moment([2007, 0, 28]);
- a.diff(b, 'days') // 1
5 汉化
moment.lang('zh-cn', {
months : "一月_二月_三月_四月_五月_六月_七月_八月_九月_十月_十一月_十二月".split("_"),
monthsShort : "1月_2月_3月_4月_5月_6月_7月_8月_9月_10月_11月_12月".split("_"),
weekdays : "星期日_星期一_星期二_星期三_星期四_星期五_星期六".split("_"),
weekdaysShort : "周日_周一_周二_周三_周四_周五_周六".split("_"),
weekdaysMin : "日_一_二_三_四_五_六".split("_"),
longDateFormat : {
LT : "Ah点mm",
L : "YYYY年MMMD日",
LL : "YYYY年MMMD日",
LLL : "YYYY年MMMD日LT",
LLLL : "YYYY年MMMD日ddddLT",
l : "YYYY年MMMD日",
ll : "YYYY年MMMD日",
lll : "YYYY年MMMD日LT",
llll : "YYYY年MMMD日ddddLT"
},
meridiem : function (hour, minute, isLower) {
if (hour < 9) {
return "早上";
} else if (hour < 11 && minute < 30) {
return "上午";
} else if (hour < 13 && minute < 30) {
return "中午";
} else if (hour < 18) {
return "下午";
} else {
return "晚上";
}
},
calendar : {
sameDay : '[今天]LT',
nextDay : '[明天]LT',
nextWeek : '[下]ddddLT',
lastDay : '[昨天]LT',
lastWeek : '[上]ddddLT',
sameElse : 'L'
},
relativeTime : {
future : "%s内",
past : "%s前",
s : "几秒",
m : "1分钟",
mm : "%d分钟",
h : "1小时",
hh : "%d小时",
d : "1天",
dd : "%d天",
M : "1个月",
MM : "%d个月",
y : "1年",
yy : "%d年"
}
});
6 重写扩展
moment.months monthsShort weekdays weekdaysShort weekdaysMin longDateFormat relativeTime 扩展自定义
7 其他
零碎的api
clone 复制
isValid 验证合法
daysInMonth 每月天数
isDST 是否休息日
isLeapYear 闰年
moment.js 日期包装类 (说明示例)的更多相关文章
- 一个JS的日期格式化算法示例
一个JS的日期格式化算法. 例子: <script> /** * Js日期格式化算法实例 * by www.jbxue.com */ function dateFormat(date, f ...
- C# MVC 用户登录状态判断 【C#】list 去重(转载) js 日期格式转换(转载) C#日期转换(转载) Nullable<System.DateTime>日期格式转换 (转载) Asp.Net MVC中Action跳转(转载)
C# MVC 用户登录状态判断 来源:https://www.cnblogs.com/cherryzhou/p/4978342.html 在Filters文件夹下添加一个类Authenticati ...
- Js 日期转换函数(UTC时间转换及日期想加减)
IOS上Js日期转换中new Date("yyyy-mm-dd")不能正常工作,必须使用new Date("yyyy/MM/dd"); 日期相加减: Date. ...
- 移动端lCalendar纯原生js日期时间选择器
网上找过很多的移动端基于zepto或jquery的日期选择器,在实际产品中也用过一两种,觉得都不太尽如人意,后来果断选择了H5自己的日期input表单,觉得还可以,至少不用引用第三方插件了,性能也不错 ...
- 161226、js日期格式化
JavaScript Date format(js日期格式化) 方法一:// 对Date的扩展,将 Date 转化为指定格式的String // 月(M).日(d).小时(h).分(m).秒(s).季 ...
- 【JavaScript】 knockout.js 日期格式化借助【momentjs】
源:Knockout.js 日期格式化 源:momentjs
- js 日期处理,json处理
模块化js :requirejshttp://www.requirejs.cn/ 好用的日期控件:http://www.bootcss.com/p/bootstrap-datetimepicker/i ...
- JS获取当前日期时间及JS日期格式化
Js获取当前日期时间: var myDate = new Date(); myDate.getYear(); //获取当前年份(2位) myDate.getFullYear(); //获取完整的年份( ...
- js日期时间比较函数
转自:http://www.cnblogs.com/zxjyuan/archive/2010/09/07/1820708.html js日期比较(yyyy-mm-dd) function duibi( ...
随机推荐
- linux编程之消息队列
消息队列是内核地址空间中的内部链表,通过linux内核在各个进程之间传递内容,消息顺序地发送到消息队列中,并且以几种不同的方式 从队列中获取,每个消息队列可以用IPC标识符唯一的进行标识,内核中的消息 ...
- 【Android XML】Android XML 转 Java Code 系列之 介绍(1)
最近在公司做一个项目,需要把Android界面打包进jar包给客户使用.对绝大部分开发者来说,Android界面的布局以XML文件为主,并辅以少量Java代码进行动态调整.而打包进jar包的代码,意味 ...
- 64_f2
flxmlrpc-0.1.4-5.fc26.x86_64.rpm 22-May-2017 21:32 57950 flxmlrpc-devel-0.1.4-5.fc26.i686.rpm 22-May ...
- win7旗舰版64位缺失tbb.dll文件
win7旗舰版64位缺失tbb.dll文件 https://zhidao.baidu.com/question/688589990330312804.html 到好的电脑中复制一个,黏贴到下同的路径下 ...
- Development tools[重点]
Development tools yum groupinfo "Development tools" Loaded plugins: product-id, security, ...
- Linux系统各发行版镜像下载(持续更新)
Linux系统各发行版镜像下载(持续更新) http://www.linuxidc.com/Linux/2007-09/7399.htm Linux系统各发行版镜像下载(2014年10月更新),如果直 ...
- web.py输出中文字符串乱码问题的解决
web.py中文字符串网页显示乱码的解决 #!/usr/bin/env python # encoding: utf-8 import weburls = ( '/', 'index')class i ...
- iOS WKWebView ios9以上版本配置 与 设置UserAgent(用户代理), 解决点击web, 客户端接收不到web事件问题
项目运行在ios9上需要在info.plist文件中配置加入如下信息, App Transport Security Settings Allow Arbitrary Loads = YES < ...
- 网站服务器压力Web性能测试(1):Apache Bench:Apache自带服务器压力测试工具
一个网站或者博客到底能够承受多大的用户访问量经常是我们在用VPS或者独立服务器搭建网站了最关心的问题,还有不少人喜欢对LNMP或者LAMP进行一些优化以便提高Web性能,而优化后到底有多大的效果,就需 ...
- C++中多线程与Singleton的那些事儿
前言 前段时间在网上看到了个的面试题,大概意思是如何在不使用锁和C++11的情况下,用C++实现线程安全的Singleton. 看到这个题目后,第一个想法就是用Scott Meyer在<Effe ...