Javascript 如何格式化作为对象数组中的值的日期

Javascript 如何格式化作为对象数组中的值的日期,javascript,node.js,mongodb,express,mongoose,Javascript,Node.js,Mongodb,Express,Mongoose,我有一个对象数组: var exerciseLog=[{“日期”:“2019-07-02T21:18:48.946Z”,“描述”:“引体向上”,“持续时间”:“90”},{“日期”:“2019-07-02T21:22:30.395Z”,“描述”:“俯卧撑”,“持续时间”:“90”},{“日期”:“2019-07-02T22:19:37.790Z”,“描述”:“俯卧撑”,“持续时间”:“50”}]您的错误是因为您正在将返回值从分配到exerciseLog Array.prototype.forE

我有一个对象数组:


var exerciseLog=[{“日期”:“2019-07-02T21:18:48.946Z”,“描述”:“引体向上”,“持续时间”:“90”},{“日期”:“2019-07-02T21:22:30.395Z”,“描述”:“俯卧撑”,“持续时间”:“90”},{“日期”:“2019-07-02T22:19:37.790Z”,“描述”:“俯卧撑”,“持续时间”:“50”}]
您的错误是因为您正在将返回值从分配到
exerciseLog

Array.prototype.forEach不返回任何内容

你想用

exerciseLog=exerciseLog.map(x=>x.date.toLocaleDateString())

forEach()。如果改用
map()
,该行将根据传递给
map()
的函数中返回的内容,将
exerciseLog
设置为新数组

下一个问题是,原始代码段中的引号是卷曲引号——不确定这是从哪里来的,但除非是单引号或双引号,否则一切都不会起作用


我认为最后一个问题是,
x.date
已经是一个日期字符串,而不是一个日期对象,因此
toLocaleDateString()
对它不起作用。您可以只使用
x.date
,或者如果您确实需要将日期转换为其他区域设置,您可以执行类似
new date(x.date).toLocaleDateString()
@Miles Grover和@BlueWater 86的操作。谢谢您的帮助。我以前试过地图,但没用,现在用了

exerciseLog = exerciseLog.map(x => x.date.toLocaleDateString());
仅返回格式化的日期,因此我必须这样做以保留其余的对象信息:

exerciseLog = exerciseLog.map(x => "description: " + x.description + ", duration: " + x.duration + ", date: " + x.date.toLocaleDateString());

当前输入的语法无效。尽量避免在编程中使用卷曲引号,它们通常会创建problems@CertainPerformance? 我不知道你是什么意思?在我的问题中,当数组作为响应从我的数据库发送时,它是如何显示的,除了我希望格式化数据库日期的响应外,其他所有功能都正常。只需尝试按顶部的“Run code snippet”(运行代码片段),您发布的代码会抛出语法错误。好的,我明白您的意思了。卷曲引号不在我的代码中,它们是通过复制和粘贴得到的,我没有注意到它们粘贴为卷曲引号。在我的代码中,它们是常规引号。
exerciseLog = exerciseLog.map(x => "description: " + x.description + ", duration: " + x.duration + ", date: " + x.date.toLocaleDateString());