/* 时间格式化函数
* date @String js支持的合格的时间字符串
* format @String 期望返回的时间格式,yy-mm-dd-hh-min-ss-ms ww
* zh @Boolean 星期格式是否中文
*/
format (date, format, zh = true) {
const weeks = ['周一', '周二', '周三', '周四', '周五', '周六', '周日']
const weeksEn = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday']
if (this.isValidDate(date)) {
// 对IOS时间字符串的处理
if (typeof date !== 'number') {
date = date.replace(/-/g,"/")
}
const t = new Date(date)
let f = String(format)
if (new RegExp('yy', 'g').test(f)) {
f = f.replace(/yy/g, t.getFullYear())
}
if (new RegExp('mm', 'gi').test(f)) {
let m = t.getMonth() + 1
f = f.replace(/mm/g, m < 10 ? '0' + m : m)
}
if (new RegExp('dd', 'gi').test(f)) {
let d = t.getDate()
f = f.replace(/dd/g, d < 10 ? '0' + d : d)
}
if (new RegExp('hh', 'gi').test(f)) {
f = f.replace(/hh/g, t.getHours())
}
if (new RegExp('min', 'gi').test(f)) {
f = f.replace(/min/g, t.getMinutes())
}
if (new RegExp('ss', 'gi').test(f)) {
f = f.replace(/ss/g, t.getSeconds())
}
if (new RegExp('ms', 'gi').test(f)) {
f = f.replace(/ms/g, t.getMilliseconds())
}
if (new RegExp('ww', 'gi').test(f)) {
f = f.replace(/ww/g, zh ? weeks[t.getDay() - 1] : weeksEn[t.getDay() - 1])
}
return f
} else {
console.error('Invalid Date,Are you sure that the time you give is the correct format?')
return date
}
},
isValidDate (d) {
// 对IOS时间字符串的处理,IOS上只支持yyyy/MM/dd这种标准格式,如果是 '2011-07-14 19:43:37' 这
// 种格式会报Invalid Date
// 实际上把时间字符串转成`2011-07-14T19:43:37`这种格式也行
// http://support.sas.com/documentation/cdl/en/lrdict/64316/HTML/default/viewer.htm#a003169814.htm
if (typeof d !== 'number') {
d = d.replace(/-/g,"/")
}
return d instanceof Date || !isNaN(new Date(d).getDate())
}
类似于PHP的时间格式化函数,传入时间字符串或时间戳以及想要的格式,例如