使用Nodejs的Moment.js Sql日期时间转换

Sid*_*rth 2 javascript node.js express momentjs

我使用nodejs连接到mySql和连接工作.同时使用查询等

SELECT * from someTable
Run Code Online (Sandbox Code Playgroud)

我得到了所需的结果.但问题是我有一个存储日期的列具有给定的格式.在发送数据之前,我需要转换这种格式,反之亦然

file_date : Wed Jan 01 2014 05:34:53 GMT+0530 (IST)
Run Code Online (Sandbox Code Playgroud)

这是我得到的格式

我无法从客户端以此格式发送带有日期的参数,因此我需要将此数据转换为"DD-MM-YYYY"格式.我需要这种方式以便我可以在"DD-MM-YYYY"中传递参数明智地获取数据

Thi*_*ark 6

简单方法
如果您知道Moment支持您的日期格式,那么最简单的方法是构造一个时刻对象并对其进行格式化.

var file_date = 'Wed Jan 01 2014 05:34:53 GMT+0530 (IST)';
var formatted = moment(file_date).format('DD-MM-YYYY');
Run Code Online (Sandbox Code Playgroud)

弃用警告:
但是,在某些时候,不推荐支持非ISO日期格式.它在某些情况下仍然可以工作但是你应该收到警告(根据弃用警告信息):

弃用警告:提供的值不是公认的ISO格式.时刻构造回落到js Date(),这在所有浏览器和版本中都不可靠.不鼓励使用非ISO日期格式,并将在即将发布的主要版本中删除.

解决方法
相反,如果您知道输入字符串的格式,则可以使用它来解析片刻.

var s = 'Wed Jan 01 2014 05:34:53 GMT+0530 (IST)';
var m = moment(s, 'ddd MMM DD YYYY hh:mm:ss [GMT]ZZ').format('MM-DD-YYYY');
console.log(m);
Run Code Online (Sandbox Code Playgroud)
<script src="https://momentjs.com/downloads/moment.min.js"></script>
Run Code Online (Sandbox Code Playgroud)

当像这样手动指定格式时,有助于使格式文档更方便:https://momentjs.com/docs/#/displaying/format/