Files
sundynix-radio-mp/utils/util.js
T
2026-03-05 09:08:21 +08:00

123 lines
2.5 KiB
JavaScript

/**
* 早安电台 — 通用工具函数
*/
/**
* 秒数格式化为 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
}