Files
wx_pbzc/utils/util.js
T
lc 8c7f633541 refactor: ES6+ modernization + 2 bugfixes
- var→const/let, function→arrow/class across all 13 JS files
- Timer: prototype→class with ES6 getters
- plan days: IIFE→Array.from declarative generation
- storage/plan: unified formatDate via util.js
- Bugfix: getPlanDay now filters by planId (plan switch accuracy)
- Bugfix: getTodayRecord searches all months (cross-month boundary)
- WXML/WXSS unchanged; public API unchanged
2026-06-04 16:29:25 +08:00

50 lines
1.2 KiB
JavaScript

const formatTime = (seconds) => {
const m = Math.floor(seconds / 60)
const s = seconds % 60
return `${String(m).padStart(2, '0')}:${String(s).padStart(2, '0')}`
}
const formatDuration = (seconds) => {
if (seconds < 60) return `${seconds}秒`
const m = Math.floor(seconds / 60)
const s = seconds % 60
return s > 0 ? `${m}${s}秒` : `${m}分钟`
}
const getDaysInMonth = (year, month) => new Date(year, month, 0).getDate()
const getMonthCalendar = (year, month) => {
const firstDay = new Date(year, month - 1, 1)
const daysInMonth = new Date(year, month, 0).getDate()
const startDayOfWeek = firstDay.getDay()
const weeks = []
let week = [null, null, null, null, null, null, null]
for (let d = 1; d <= daysInMonth; d++) {
const dow = (startDayOfWeek + d - 1) % 7
week[dow] = d
if (dow === 6 || d === daysInMonth) {
weeks.push(week.slice())
week = [null, null, null, null, null, null, null]
}
}
return weeks
}
const formatDate = (date) => {
const y = date.getFullYear()
const m = String(date.getMonth() + 1).padStart(2, '0')
const d = String(date.getDate()).padStart(2, '0')
return `${y}-${m}-${d}`
}
module.exports = {
formatTime,
formatDuration,
getDaysInMonth,
getMonthCalendar,
formatDate
}