JavaScript中可以使用Date对象来表示日期和时间。如果需要格式化日期和时间,可以使用Date对象的几个方法和一些字符串操作方法来实现。以下是几种常见的格式化日期和时间的方式:
- 格式化为年-月-日:
function formatDate(date) {
const year = date.getFullYear()
const month = (date.getMonth() + 1 + '').padStart(2, '0')
const day = (date.getDate() + '').padStart(2, '0')
return `${year}-${month}-${day}`
}
const date = new Date()
console.log(formatDate(date)) // 输出:2022-01-01
- 格式化为年-月-日 时:分:秒:
function formatDateTime(date) {
const year = date.getFullYear()
const month = (date.getMonth() + 1 + '').padStart(2, '0')
const day = (date.getDate() + '').padStart(2, '0')
const hour = (date.getHours() + '').padStart(2, '0')
const minute = (date.getMinutes() + '').padStart(2, '0')
const second = (date.getSeconds() + '').padStart(2, '0')
return `${year}-${month}-${day} ${hour}:${minute}:${second}`
}
const date = new Date()
console.log(formatDateTime(date)) // 输出:2022-01-01 00:00:00
- 格式化为星期几:
const weekDays = ['星期日', '星期一', '星期二', '星期三', '星期四', '星期五', '星期六']
function formatWeekday(date) {
const weekDay = date.getDay()
return weekDays[weekDay]
}
const date = new Date()
console.log(formatWeekday(date)) // 输出:星期六
- 格式化为相对时间:
function formatRelativeTime(date) {
const now = new Date()
const diff = (now - date) / 1000
if (diff < 60) {
return '刚刚'
} else if (diff < 60 * 60) {
return Math.floor(diff / 60) + '分钟前'
} else if (diff < 60 * 60 * 24) {
return Math.floor(diff / (60 * 60)) + '小时前'
} else {
return formatDate(date)
}
}
const date = new Date()
console.log(formatRelativeTime(date)) // 输出:刚刚(如果当前时间是2022-01-01 00:01:00)