Skip to content
Javascript Date formatting and parsing
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
build
docs fix: fix chrome getTimezoneOffset bug Jul 19, 2018
test
.gitignore
HISTORY.md
LICENSE
README.md fix: 修正文档说明 Oct 12, 2018
hey.js
manba.js
package.json chore: 更新版本号 Jul 19, 2018

README.md

manba

超级简洁的日期处理Util,比moment.js小很多。

npm package JS gzip size License: MIT

website

http://manba.ch-un.com

install

npm install manba

建议本地安装

npm install --save manba

npm

https://www.npmjs.com/package/manba

Api

配置

定义简洁的格式化

manba.config({
    formatString: {
        "r": "YYYY"
    },
})

manba().format("r") // 2017

设定当前时间

设置前端与后端的时间差,这样前端也可以使用manba()获取当前时间。

manba.config({
    now:"2016-07-11T18:42:34.453+08:00"
})

manba().format() // 2016-07-11

init

初始化的时候,对月份做了修补。

manba(String|Number|Date|Array|Manba)

let now = manba() // 定义当前时间的manba对象
let sevenDay = now.clone().add(7, manba.DAY) //定义七天后的日期
let twoDay = manba(now).add(2, manba.DAY) //定义两天后的日期
let month = now.startOf(manba.MONTH) //定义月初的日期

manba(1459235037000).format() //毫秒 2016-03-29
manba([2016,12,23,4,3,5]).format("f") 
//月份自动补充,执行:new Date(2016,11,23,4,3,5) 2016-12-23 04:03:05
manba([2015,12,3]).format("f") 
//执行:new Date(2015,11,3) 2015-12-03
manba("2014-12-03").format("f") //2014-12-03 00:00:00
manba("2014-12-03 12:34").format("f") //2014-12-03 12:34:00
manba("2014-12-03 12:34:12").format("f") //2014-12-03 12:34:34
manba("20141203", "YYYYMMDD").format("f") //2014-12-03 00:00:00
manba("201412031223", "YYYYMMDDHHmm").format("f") //2014-12-03 12:23:00

get

month()方法,对月份做了修补。

manba().year() //2016
manba().year(2018).format() //2018-03-29
manba().month() //2016-03-29
manba().month(4).format() //2016-04-29
manba().minutes() //59
manba().minutes(34)
manba().time() //1459242450800
manba().time(123131312321).format() //1973-11-26
manba().date() //29
manba().date(4).format() //2016-03-04

格式化

格式化日期转换标准

  • YYYY/yyyy:年份
  • M:月份
  • MM:月份,个位补充0
  • D/d:天数
  • DD/dd:天数,个位补充0
  • H/h:小时
  • HH/hh:小时,个位补充0
  • m:分钟
  • mm:分钟,个位补充0
  • S/s:秒数
  • SS/ss:秒数,个位补充0
  • w:星期,返回中文:['日', '一', '二', '三', '四', '五', '六']
  • q:上下午,返回中文:['上午', '下午']

简洁的格式化

  • "l": "YYYY-MM-DD",
  • "ll": "YYYY年MM月DD日",
  • "k": "YYYY-MM-DD hh:mm",
  • "kk": "YYYY年MM月DD日 hh点mm分",
  • "kkk": "YYYY年MM月DD日 hh点mm分 q",
  • "f": "YYYY-MM-DD hh:mm:ss",
  • "ff": "YYYY年MM月DD日 hh点mm分ss秒",
  • "fff": "YYYY年MM月DD日 hh点mm分ss秒 星期w",
  • "n": "MM-DD",
  • "nn": "MM月DD日",
//各种format
manba() // Tue Mar 29 2016 16:52:56 GMT+0800 (CST)
manba().toString() // Tue Mar 29 2016 16:52:56 GMT+0800 (CST)
manba().format() // 2016-03-29
manba().format("l") // 2016-03-29
manba().format("ll") // 2016年03月29日
manba().format("k") // 2016-03-29 16:52
manba().format("kk") // 2016年03月29日 16点52分
manba().format("kkk") // 2016年03月29日 16点52分 下午
manba().format("f") // 2016-03-29 16:52:56
manba().format("ff") // 2016年03月29日 16点52分56秒
manba().format("fff") // 2016年03月29日 16点52分56秒 星期二
manba().format("n") // 03-29
manba().format("nn") // 03月29日
manba().format("YYYY") // 2016

toString

toString()方法,输出本地的日期格式。

manba().toString()

isLeapYear

isLeapYear()方法,判断是否为闰年。

manba().isLeapYear() //是否为闰年 true

clone

clone()方法,可以复制一个manba对象。

manba().clone() //复制manba对象,

ISOString

toISOString()方法,获取带时区的格式化字符串(例:2016-12-02T20:58:02+08:00)。 可传递参数获取其他时区的格式化字符串。

manba("2016-07-23 12:12:12").toISOString() //返回带时区的格式,2016-07-23T12:12:12+08:00
manba("2016-07-23 12:12:12").toISOString(+7) //返回UTC+7的日期,2016-07-23T11:12:12+07:00

distance

manba.distance(manba|String|Number|Date|Array,manba.TYPE)

manba("2012-09-21").distance("2012-09-20 23:59:59") 
//两个日期间相隔天数,纠正日期计算偏差 1

manba("2012-09-21").distance("2012-09-20 23:59:59",manba.DAY) 
//两个日期间相隔天数 1

manba("2012-09-21").distance("2012-08-20 23:59:59",manba.MONTH) 
//两个日期间相隔月数 1

manba("2012-09-21").distance("2011-09-20 23:59:59",manba.YEAR) 
//两个日期间相隔年数 1

manba('2017-07-01').distance(manba('2017-08-06'), manba.WEEK, manba.SUNDAY)
//两个日期间相隔星期数 -6

manba('2017-08-10').distance(manba('2017-08-06'), manba.WEEK, manba.SUNDAY)
//两个日期间相隔星期数 0

manba('2017-08-10').distance(manba('2017-08-06'), manba.WEEK, manba.MONDAY)
//两个日期间相隔星期数 1

manba('2016-07-23').distance(manba('2015-07-23'), manba.MINUTE)
//两个日期间相隔分钟 527040

manba('2016-07-23').distance(manba('2015-07-23'), manba.HOUR)
//两个日期间相隔小时数 8784

add

add方法,对日期做加减法,只有add函数,如果需要减法,则传递负数。 manba.add(Number,manba.TYPE)

manba("2012-10-03 23:59:59").add(1,manba.DAY).format("fff")
//2012年10月04日 23点59分59秒 星期四

manba("2012-10-03 23:59:59").add(-1,manba.DAY).format("fff")
//2012年10月02日 23点59分59秒 星期二

manba("2012-10-03 23:59:59").add(26,manba.MONTH).format("fff")
//2014年12月03日 23点59分59秒 星期三

manba("2012-10-03 23:59:59").add(-1,manba.YEAR).format("fff")
//2011年10月03日 23点59分59秒 星期一

manba("2012-10-03 23:59:59").add(1,manba.MINUTE).format("ff")
//2012年10月04日 00点00分59秒

startOf

startOf方法,做一定规则的时间处理,并返回结果。 注:该处理并不修改原来的对象,请使用返回的对象处理。
manba.startOf(manba.TYPE)

manba("2012-10-03 23:59:59").startOf(manba.DAY).format("fff")
//2012年10月03日 00点00分00秒 星期三

manba("2012-10-03 23:59:59").startOf(manba.YEAR).format("fff")
//2012年01月01日 00点00分00秒 星期日

manba("2012-10-03 23:59:59").startOf(manba.MONTH).format("fff")
//2012年10月01日 00点00分00秒 星期一

manba("2012-10-03 23:59:59").startOf(manba.HOUR).format("fff")
//2012年10月03日 15点00分00秒 星期三

manba("2012-10-03 23:59:59").startOf(manba.WEEK).format("fff")
//2012年09月30日 00点00分00秒 星期日

manba("2012-10-03 23:59:59").startOf(manba.WEEK,manba.MONDAY).format("fff")
//2012年10月01日 00点00分00秒 星期一

manba('2016-07-23 12:12:12').startOf(manba.QUARTER).format("f")
//2016-07-01 00:00:00

endOf

endOf方法,做一定规则的时间处理,并返回结果。 注:该处理并不修改原来的对象,请使用返回的对象处理。
manba.endOf(manba.TYPE)

manba("2012-10-03 23:59:59").endOf(manba.DAY).format("ff")
//2012年10月03日 23点59分59秒

manba("2012-10-03 23:59:59").endOf(manba.YEAR).format()
//2012-12-31

manba("2012-10-03 23:59:59").endOf(manba.MONTH).format()
//2012-10-31

manba("2012-10-03 23:59:59").endOf(manba.WEEK).format("fff")
//2012年10月06日 23点59分59秒 星期六

manba("2012-10-03 23:59:59").endOf(manba.WEEK,manba.MONDAY).format("fff")
//2012年10月07日 23点59分59秒 星期日

manba('2016-07-23 12:12:12').endOf(manba.QUARTER).format("f")
//2016-09-30 23:59:59

week

//获取当月的星期数
//manba.SUNDAY 星期日开始
//默认星期日
manba().getWeekOfMonth()
manba().getWeekOfMonth(manba.MONDAY)

//获取当年的星期数
//manba.MONDAY 星期一开始
manba().getWeekOfYear(manba.MONDAY)
You can’t perform that action at this time.