first commit
This commit is contained in:
+122
@@ -0,0 +1,122 @@
|
||||
/**
|
||||
* 早安电台 — 通用工具函数
|
||||
*/
|
||||
|
||||
/**
|
||||
* 秒数格式化为 mm:ss
|
||||
* @param {number} seconds - 总秒数
|
||||
* @returns {string} - 如 "01:30"
|
||||
*/
|
||||
function formatTime(seconds) {
|
||||
seconds = Math.floor(seconds || 0)
|
||||
var min = Math.floor(seconds / 60)
|
||||
var sec = seconds % 60
|
||||
return padZero(min) + ':' + padZero(sec)
|
||||
}
|
||||
|
||||
/**
|
||||
* 补零
|
||||
*/
|
||||
function padZero(num) {
|
||||
return num < 10 ? '0' + num : '' + num
|
||||
}
|
||||
|
||||
/**
|
||||
* 日期格式化
|
||||
* @param {Date|string} date
|
||||
* @param {string} [format='YYYY-MM-DD']
|
||||
* @returns {string}
|
||||
*/
|
||||
function formatDate(date, format) {
|
||||
if (typeof date === 'string') {
|
||||
date = new Date(date.replace(/-/g, '/'))
|
||||
}
|
||||
format = format || 'YYYY-MM-DD'
|
||||
|
||||
var year = date.getFullYear()
|
||||
var month = padZero(date.getMonth() + 1)
|
||||
var day = padZero(date.getDate())
|
||||
|
||||
return format
|
||||
.replace('YYYY', year)
|
||||
.replace('MM', month)
|
||||
.replace('DD', day)
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取星期几
|
||||
* @param {Date} [date]
|
||||
* @returns {string} 周一~周日
|
||||
*/
|
||||
function getWeekDay(date) {
|
||||
date = date || new Date()
|
||||
var days = ['周日', '周一', '周二', '周三', '周四', '周五', '周六']
|
||||
return days[date.getDay()]
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取今天的日期字符串 YYYY-MM-DD
|
||||
*/
|
||||
function getTodayStr() {
|
||||
return formatDate(new Date())
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取友好的日期显示
|
||||
* @param {string} dateStr - YYYY-MM-DD
|
||||
* @returns {string} 如 "今天"、"昨天"、"3月1日"
|
||||
*/
|
||||
function getFriendlyDate(dateStr) {
|
||||
var today = getTodayStr()
|
||||
if (dateStr === today) return '今天'
|
||||
|
||||
var yesterday = new Date()
|
||||
yesterday.setDate(yesterday.getDate() - 1)
|
||||
if (dateStr === formatDate(yesterday)) return '昨天'
|
||||
|
||||
var d = new Date(dateStr.replace(/-/g, '/'))
|
||||
return (d.getMonth() + 1) + '月' + d.getDate() + '日'
|
||||
}
|
||||
|
||||
/**
|
||||
* 日期字符串替换 - 为 .
|
||||
*/
|
||||
function dateToDot(dateStr) {
|
||||
return (dateStr || '').replace(/-/g, '.')
|
||||
}
|
||||
|
||||
/**
|
||||
* 获取日期显示 X月X日
|
||||
*/
|
||||
function getDateDisplay(date) {
|
||||
date = date || new Date()
|
||||
return (date.getMonth() + 1) + '月' + date.getDate() + '日'
|
||||
}
|
||||
|
||||
/**
|
||||
* 节流函数
|
||||
*/
|
||||
function throttle(fn, delay) {
|
||||
var timer = null
|
||||
return function () {
|
||||
if (timer) return
|
||||
var args = arguments
|
||||
var context = this
|
||||
timer = setTimeout(function () {
|
||||
fn.apply(context, args)
|
||||
timer = null
|
||||
}, delay)
|
||||
}
|
||||
}
|
||||
|
||||
module.exports = {
|
||||
formatTime,
|
||||
padZero,
|
||||
formatDate,
|
||||
getWeekDay,
|
||||
getTodayStr,
|
||||
getFriendlyDate,
|
||||
dateToDot,
|
||||
getDateDisplay,
|
||||
throttle
|
||||
}
|
||||
Reference in New Issue
Block a user