【问题标题】:To change time format when sending from server(node) to client (react)从服务器(节点)发送到客户端(反应)时更改时间格式
【发布时间】:2018-05-31 09:04:29
【问题描述】:

我正在为日期格式而苦苦挣扎。

在 Node.js 中完成的服务器端,我有一个日期数组,格式如下:

["2018-05-31T22:00:00.000Z", "2018-06-14T22:00:00.000Z"]

我在客户端 (React.js) 需要的是时间数组,格式如下:

[Fri Jun 01 2018 00:00:00 GMT+0200 (CEST), Sat Jun 02 2018 00:00:00 GMT+0200 (CEST)]

所以不仅时间格式不同并且需要更改,而且第一个是字符串,其他不是(实际上,它们是什么?;))

我想两者都在数组中的事实在这里并不重要。

感谢您的帮助

【问题讨论】:

  • 某些东西正在处理数组并将字符串值转换为Date 值(显然不正确)。但是,这必须明确地完成,这不会自行神奇地发生。因此,要么您正在执行此操作,要么您正在使用某个库。在这里我们无能为力帮助您。
  • 我在 node.js 端做的唯一事情是 new Date(2018,05,31) 然后我将它发送给客户端
  • 但是客户端上的某些东西将字符串转换为Date 对象。

标签: javascript node.js reactjs


【解决方案1】:

您可以迭代字符串化日期数组,一旦您在客户端拥有它,然后将每个字符串项转换回日期对象。

let dateString = ["2018-05-31T22:00:00.000Z", "2018-06-14T22:00:00.000Z"];
let dateObj = dateString.map( d => new Date(d) );
// done. dates Array contains now Date Objects
console.log( typeof dateObj[0] );

【讨论】:

  • 如果要就地修改数组,为什么要使用 map?要么使用forEach,要么使用.map(d => new Date(d)) 创建一个新数组。
  • 我的错。固定;)
  • 呃,map 返回一个新数组,您将其丢弃,而原始数组保持不变。
猜你喜欢
  • 1970-01-01
  • 2015-07-20
  • 1970-01-01
  • 2019-11-18
  • 1970-01-01
  • 2020-08-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多