MySQL存储时间类型
Date
存储数据格式为:YYYY-MM-DD,支持的范围为’1000-01-01’到’9999-12-31’。
插入数据时Date不能设置default默认值(好像是),可以设置触发器给Date字段添加默认值。
// 触发器,date为表中字段名
BEGIN
IF NEW.date is NULL THEN
SET NEW.date = CURDATE();
END IF;
END
DateTime
日期和时间的组合,存储格式为:YYYY-MM-DD HH:MM:SS,它支持的范围为’1000-01-01 00:00:00’到’9999-12-31 23:59:59’
存什么是什么,不被当前的时区影响
默认值可以设置时间戳CURRENT_TIMESTAMP
根据当前时间戳更新可以在更新当前记录的其他字段时更新DateTime字段
TimeStamp
timestamp所能存储的时间范围为:‘1970-01-01 00:00:01.000000’ 到 ‘2038-01-19 03:14:07.999999’。
被当前的时区所影响。
其他与DateTime一致。
Javascript
前端接收到后端从数据库查询出的日期时,如果后端没有对数据进行处理,前端接收到的为一个13位的时间戳,可以通过以下方法转换
1
console.log("转换前:" + time);
/* 定义Date变量 */
let datetime = new Date();
/* 将要转换的时间赋予datetime */
datetime.setTime(time);
let year = datetime.getFullYear();
let month = datetime.getMonth() + 1 < 10 ? "0" + (datetime.getMonth() + 1) : datetime.getMonth() + 1;
let date = datetime.getDate() < 10 ? "0" + datetime.getDate() : datetime.getDate();
let hour = datetime.getHours() < 10 ? "0" + datetime.getHours() : datetime.getHours();
let minute = datetime.getMinutes() < 10 ? "0" + datetime.getMinutes() : datetime.getMinutes();
let second = datetime.getSeconds() < 10 ? "0" + datetime.getSeconds() : datetime.getSeconds();
console.log("转换后:" + year + "-" + month + "-" + date + " " + hour + ":" + minute + ":" + second);
结果
转换前:1618307762000
转换后:2021-04-13 17:56:02
2
console.log("转换前:" + time);
/* 定义Date变量 */
let datetime = new Date();
/* 将要转换的时间赋予datetime */
datetime.setTime(time);
datetime.setTime(time);
console.log(datetime.toLocaleDateString());
console.log(datetime.toLocaleTimeString());
console.log(datetime.toLocaleDateString() + datetime.toLocaleTimeString());
结果
转换前:1618307762000
2021/4/13
下午5:56:02
2021/4/13下午5:56:02