Files
Pet3/miniprogram/utils/format.js
2026-06-25 18:24:29 +08:00

49 lines
1.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
// utils/format.js — 时长 / 距离 / 日期格式化
/** 秒 → "MM:SS" 或 "HH:MM:SS" */
function formatDuration(sec) {
sec = Math.max(0, Math.floor(sec || 0));
const h = Math.floor(sec / 3600);
const m = Math.floor((sec % 3600) / 60);
const s = sec % 60;
const pad = (n) => String(n).padStart(2, '0');
return h > 0 ? `${pad(h)}:${pad(m)}:${pad(s)}` : `${pad(m)}:${pad(s)}`;
}
/** 秒 → "12分34秒"(历史列表用) */
function formatDurationCN(sec) {
sec = Math.max(0, Math.floor(sec || 0));
const m = Math.floor(sec / 60);
const s = sec % 60;
return `${m}${String(s).padStart(2, '0')}`;
}
/** 公里数 → "1.2km"null → "距离未记录" */
function formatDistance(km) {
if (km == null) return '距离未记录';
return `${Number(km).toFixed(1)}km`;
}
/** 时间戳 → 本地 "yyyy-mm-dd" */
function toDateStr(ts, tzOffsetHours = 8) {
const d = new Date(ts + tzOffsetHours * 3600 * 1000);
const y = d.getUTCFullYear();
const m = String(d.getUTCMonth() + 1).padStart(2, '0');
const day = String(d.getUTCDate()).padStart(2, '0');
return `${y}-${m}-${day}`;
}
/** 时间戳 → "今天 早上 / 昨天 傍晚" 之类的友好时段(简版占位) */
function friendlyTime(ts) {
// TODO: 阶段 2 完整实现(今天/昨天/前天 + 时段)
return new Date(ts).toLocaleString();
}
module.exports = {
formatDuration,
formatDurationCN,
formatDistance,
toDateStr,
friendlyTime,
};