JS原生日期处理方案
原生js日期常用方法
获取
let d = new Date();
// 获取自 1970 年 1 月 1 日至当前的毫秒数 时间戳
console.log(d.getTime());
// 获取 四位数年份
console.log(d.getFullYear());
// 获取 月份(0-11) 因此,月份需要再加一才是正确月份
console.log(d.getMonth() + 1);
// 获取 当前所在月份的 天数 (1-31)
console.log(d.getDate());
// 获取周几(1-7)
console.log(d.getDay());
// 获取 小时
console.log(d.getHours());
// 获取 分钟
console.log(d.getMinutes());
// 获取 秒
console.log(d.getSeconds());
// 获取 毫秒
console.log(d.getMilliseconds());
设置
let d = new Date();
// 设置日期对象的年份 例如2020年
d.setFullYear(2020);
// 选择设置月和日
d.setFullYear(2020, 11, 3);
// 设置月份 (0-11)
d.setMonth(8);
// 设置日 (1-31)
d.setDate(15);
// 为一个日期对象添加日期
d.setDate(d.getDate() + 50);
// 设置小时 (0-23)
d.setHours(12);
// 设置分钟 (0-59)
d.setMinutes(30);
// 设置秒数 (0-59)
d.setSeconds(30);
日期比较
let today, someday, text;
today = new Date();
someday = new Date();
someday.setFullYear(2049, 0, 16);
if (someday > today) {
text = "今天在 2049 年 1 月 16 日之前";
} else {
text = "今天在 2049 年 1 月 16 日之后";
}
二次封装的时间处理方法…
day.js日期处理方案
安装和引入
npm install dayjs --save
import dayjs from 'dayjs'
day.js常用方法
// 当前年份
var currentYear = dayjs().year();
// 获取当前月份
var currentMonth = dayjs().month() + 1;
// 获取当前月份有多少天
var currentMonthDay = dayjs('2023-02-06').daysInMonth(); // 28 天
// 获取当前几号的天数 2.8日 返回 Number 8
var currentDay = dayjs().date();
// 获取当前是周几 返回 string 一 || 二 || 三
var currentWeek = dayjs().day();
// 获取当前是几点 13.40 === Number 13
var currentHour = dayjs().hour()
// 设置开始的某个时间 || 结束时间
// year(今年一月1日上午 00:00) || month(本月1日上午 00:00)
// hour(当前时间,0 分、0 秒、0 毫秒) || minute(当前时间,0 秒、0 毫秒)
// week(本周的第一天上午 00:00)
dayjs().startOf('day') // startOf 时间的开始 当天的 00:00:00
dayjs().endOf('day') // endOf 时间的末尾 当天的 23:59:59
// 以下用法详解
dayjs("2023-02-06").startOf('day').format('YYYY-MM-DD HH:mm:ss'), // 转换> 2023-02-06 00:00:00
dayjs("2023-02-06").endOf('day').format('YYYY-MM-DD HH:mm:ss'), // 转换> 2023-02-06 23:59:59
dayjs(formData.dataTime[0]).startOf('day').format('YYYY-MM-DD HH:mm:ss'), // 用法
// 时间戳格式
dayjs().format(String)
dayjs('2023-02-06').format('YYYY-MM-DD HH:mm:ss') // 日期 === 年 月 日 时 分 秒 2023-02-06 00:00:00
dayjs().format('YYYY-MM-DD') // 日期 === 年 月 日 2023-02-06
dayjs().format('YYYY-MM') // 日期 === 年 月 2023-02
// 判断某个日期是否 已经在已过日期 ( Boolean )
dayjs('2023-02-07').isBefore(dayjs()); // 2023-02-06 false ( 2023-02-07 不在 02-06 之前 )
// 判断某个日期是否跟某个日期相同 (boolean)
dayjs('2023-2-6').isSame(dayjs('2023-2-6')); // true
// 判断某个日期是否在某个日期之后
dayjs('2023-2-7').isAfter(dayjs('2023-2-9')); // false 如果两个一样那么也是返回 false