【问题标题】:Moment.js Sql Date Time Conversion with NodejsMoment.js Sql 日期时间转换与 Nodejs
【发布时间】:2015-10-18 21:53:50
【问题描述】:

我正在使用 nodejs 连接到 mySql 并且连接正常。 在使用查询时,例如

SELECT * from someTable

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

file_date : Wed Jan 01 2014 05:34:53 GMT+0530 (IST)

这是我得到的格式

我无法从客户端以这种格式发送带有日期的参数 所以我需要将此数据转换为“DD-MM-YYYY”格式。我需要这种方式以便我可以在“DD-MM-YYYY”中传递参数并按日期获取数据

【问题讨论】:

  • 当您发送和接收数据时使用 moment("Wed Jan 01 2014 05:34:53 GMT+0530").format("DD-MM-YYYY");

标签: javascript node.js express momentjs


【解决方案1】:

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

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

弃用警告:
然而,在某些时候,对非 ISO 日期格式的支持已被弃用。它在某些情况下仍然有效,但应该警告您(根据弃用警告消息):

弃用警告:提供的值不是可识别的 ISO 格式。 moment 构造回退到 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);
<script src="https://momentjs.com/downloads/moment.min.js"></script>

像这样手动指定格式时,将格式文档放在手边会很有帮助:https://momentjs.com/docs/#/displaying/format/

【讨论】:

  • 还有moment.parseZone 用于更具体的时区精度,而不是运行此代码的客户端的本地时间。请参阅我与 Matt Johnson 的讨论以获取更多详细信息:stackoverflow.com/a/21067769/1161948
猜你喜欢
  • 2017-12-10
  • 1970-01-01
  • 2019-01-26
  • 1970-01-01
  • 1970-01-01
  • 2019-11-26
  • 2017-06-27
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多