Files
2026-01-09 09:35:44 +08:00

205 lines
4.7 KiB
TypeScript
Raw Permalink 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.
// pages/date/date.ts
import { formatTime, formatDateTime } from '../../utils/util'
Page({
/**
* 页面的初始数据
*/
data: {
// formatTime 示例
formatTimeExamples: [] as Array<{ label: string; value: string }>,
// formatDateTime 示例 - 不同格式模板
formatDateTimeExamples: [] as Array<{ label: string; format: string; value: string }>,
// formatDateTime 示例 - 不同输入类型
inputTypeExamples: [] as Array<{ label: string; input: string; value: string }>,
},
/**
* 生命周期函数--监听页面加载
*/
onLoad() {
this.initExamples()
},
/**
* 初始化所有示例数据
*/
initExamples() {
const now = new Date()
const timestamp = now.getTime()
const dateString = '2024-01-15 14:30:45'
const chineseDateString = '2024年1月15日'
// formatTime 示例
const formatTimeExamples = [
{
label: '当前时间',
value: formatTime(now),
},
{
label: '指定日期',
value: formatTime(new Date(2024, 0, 15, 14, 30, 45)),
},
{
label: '昨天',
value: formatTime(new Date(timestamp - 24 * 60 * 60 * 1000)),
},
{
label: '明天',
value: formatTime(new Date(timestamp + 24 * 60 * 60 * 1000)),
},
]
// formatDateTime 示例 - 不同格式模板
const formatDateTimeExamples = [
{
label: '默认格式(YYYY/MM/DD HH:mm:ss',
format: 'YYYY/MM/DD HH:mm:ss',
value: formatDateTime(now),
},
{
label: '中文日期格式',
format: 'YYYY年MM月DD日 HH:mm:ss',
value: formatDateTime(now, 'YYYY年MM月DD日 HH:mm:ss'),
},
{
label: '短日期格式',
format: 'YY/MM/DD',
value: formatDateTime(now, 'YY/MM/DD'),
},
{
label: '12小时制格式',
format: 'YYYY-MM-DD hh:mm:ss A',
value: formatDateTime(now, 'YYYY-MM-DD hh:mm:ss A'),
},
{
label: '24小时制格式',
format: 'YYYY-MM-DD HH:mm:ss',
value: formatDateTime(now, 'YYYY-MM-DD HH:mm:ss'),
},
{
label: '仅日期',
format: 'YYYY-MM-DD',
value: formatDateTime(now, 'YYYY-MM-DD'),
},
{
label: '仅时间',
format: 'HH:mm:ss',
value: formatDateTime(now, 'HH:mm:ss'),
},
{
label: '带毫秒',
format: 'YYYY-MM-DD HH:mm:ss.SSS',
value: formatDateTime(now, 'YYYY-MM-DD HH:mm:ss.SSS'),
},
{
label: '美式日期格式',
format: 'MM/DD/YYYY',
value: formatDateTime(now, 'MM/DD/YYYY'),
},
{
label: '完整中文格式',
format: 'YYYY年MM月DD日 HH时mm分ss秒',
value: formatDateTime(now, 'YYYY年MM月DD日 HH时mm分ss秒'),
},
]
// formatDateTime 示例 - 不同输入类型
const inputTypeExamples = [
{
label: 'Date 对象',
input: 'new Date()',
value: formatDateTime(now),
},
{
label: '时间戳(数字)',
input: `${timestamp}`,
value: formatDateTime(timestamp),
},
{
label: '日期字符串(标准格式)',
input: dateString,
value: formatDateTime(dateString),
},
{
label: '中文日期字符串',
input: chineseDateString,
value: formatDateTime(chineseDateString),
},
{
label: '仅年份字符串',
input: '2024',
value: formatDateTime('2024'),
},
{
label: '年月字符串',
input: '2024/01',
value: formatDateTime('2024/01'),
},
]
this.setData({
formatTimeExamples,
formatDateTimeExamples,
inputTypeExamples,
})
},
/**
* 生命周期函数--监听页面初次渲染完成
*/
onReady() {},
/**
* 生命周期函数--监听页面显示
*/
onShow() {},
/**
* 生命周期函数--监听页面隐藏
*/
onHide() {},
/**
* 生命周期函数--监听页面卸载
*/
onUnload() {},
/**
* 页面相关事件处理函数--监听用户下拉动作
*/
onPullDownRefresh() {},
/**
* 页面上拉触底事件的处理函数
*/
onReachBottom() {},
/**
* 用户点击右上角分享
*/
onShareAppMessage() {},
/**
* 复制文本到剪贴板
*/
copyText(e: WechatMiniprogram.Touch) {
const { text } = e.currentTarget.dataset
if (!text) {
return
}
wx.setClipboardData({
data: text,
success: () => {
wx.showToast({
title: '复制成功',
icon: 'success',
}).catch(() => {
console.error('showToast error')
})
},
})
},
})