Express中使用moment进行时间格式化(MySQL五种日期和时间类型)

1.MySQL五种日期和时间类型

MySQL所支持的日期时间类型有:DATETIME、TIMESTAMP、DATE、TIME、YEAR

DATETIME

DATETIME 用于表示年月日时分秒,是 DATE 和 TIME 的组合,并且记录的年份比较长久。如果实际应用中有这样的需求,就可以使用 DATETIME 类型。

TIMESTAMP

TIMESTAMP 用于表示 年月日 时分秒,但是记录的年份比较短暂。

TIMESTAMP 和时区相关,更能反映当前时间。当插入日期时,会先转换为本地时区后再存放;当查询日期时,会将日期转换为本地时区后再显示。所以不同时区的人看到的同一时间是不一样的。

DATE

DATE 用于表示 年月日,如果实际应用值需要保存 年月日 就可以使用 DATE。

TIME

TIME 用于表示 时分秒,如果实际应用值需要保存 时分秒 就可以使用 TIME。

YEAR

YEAR 用于表示 年份,YEAR 有 2 位(最好使用4位)和 4 位格式的年。 默认是4位。如果实际应用只保存年份,那么用 1 bytes 保存 YEAR 类型完全可以。不但能够节约存储空间,还能提高表的操作效率。

更多参考:
https://www.cnblogs.com/wgphp/p/7910010.html
https://www.cnblogs.com/wlzjdm/p/6953398.html
https://www.cnblogs.com/mxwz/p/7520309.html
https://www.cnblogs.com/poplj/p/5563191.html

2.Express使用moment格式化时间

本来是这样的格式(MySQL数据库中的时间日期类型我们是使用datetime):
Express中使用moment进行时间格式化(MySQL五种日期和时间类型)_第1张图片

我们想格式化成2019-07-01这样的形式。

看下面代码(ejs文件中渲染moment.js库,将时间戳日期格式化):

(1)项目里安装 moment:npm install moment --save

(2)app.js加入如下代码:

var moment = require('moment')

var app = express();后面加入app.locals.moment = moment;

Express中使用moment进行时间格式化(MySQL五种日期和时间类型)_第2张图片
(3)页面渲染调用格式为:<%= moment(要解析的值).format('YYYY-MM-DD') %>

<%=moment(titles[i].regDate).format('YYYY-MM-DD')%>

参考文章:
https://www.cnblogs.com/zhaomeizi/p/9253088.html
https://www.jianshu.com/p/20a838fa1cf1
https://developer.mozilla.org/zh-CN/docs/learn/Server-side/Express_Nodejs/Displaying_data/Date_formatting_using_moment
https://blog.csdn.net/u013742084/article/details/53572594
https://www.npmjs.com/package/moment

你可能感兴趣的:(NodeJS)