是的,我必定是得了只能使用本身寫的庫類的病,並且還病的不輕。javascript
超級簡潔的日期處理類庫。
前端
源碼:15 kB
壓縮的源碼:9 kBjava
某年某月找日期類庫,看到moment.js寫的類庫那麼大,未壓縮102kB,壓縮後34.6kB,不服氣哦~~
如今服氣了,功能的確是很是的全。
不過,manba提供的類庫已經徹底可以知足咱們平常的需求了,並且還很迷你。git
manba.ch-un.comgithub
npm install manba
複製代碼
建議本地安裝npm
npm install --save manba
複製代碼
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
複製代碼
初始化的時候,對月份作了修補。svg
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(1459235037).format() //秒 2016-03-29
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
複製代碼
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
複製代碼
//各類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()
方法,輸出本地的日期格式。
manba().toString()
複製代碼
isLeapYear()
方法,判斷是否爲閏年。
manba().isLeapYear() //是否爲閏年 true
複製代碼
clone()
方法,能夠複製一個manba對象。
manba().clone() //複製manba對象,
複製代碼
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
複製代碼
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函數,若是須要減法,則傳遞負數。 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
方法,作必定規則的時間處理,並返回結果。 注:該處理並不修改原來的對象,請使用返回的對象處理。
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
方法,作必定規則的時間處理,並返回結果。 注:該處理並不修改原來的對象,請使用返回的對象處理。
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
複製代碼
//獲取當月的星期數
//manba.SUNDAY 星期日開始
//默認星期日
manba().getWeekOfMonth()
manba().getWeekOfMonth(manba.MONDAY)
//獲取當年的星期數
//manba.MONDAY 星期一開始
manba().getWeekOfYear(manba.MONDAY)
複製代碼
github連接: github.com/vvpvvp/manb…,求Star。
背景圖2017攝於色達