Javascript ReactJS时刻未正确格式化日期

Javascript ReactJS时刻未正确格式化日期,javascript,reactjs,momentjs,Javascript,Reactjs,Momentjs,我有一个显示每周第一个日期的功能,其结果显示如下: 2018年11月12日星期一08:14:09 GMT-0600(中央标准时间) …我试图做的是仅显示月份的结果: 2018-11-12 …以下是获取每周第一天的函数: let sd = new Date(); const startOfWeek = (date) => { let diff = date.getDate() - date.getDay() + (date.getDay() === 0 ? -6 : 1); retu

我有一个显示每周第一个日期的功能,其结果显示如下:

2018年11月12日星期一08:14:09 GMT-0600(中央标准时间)

…我试图做的是仅显示月份的结果: 2018-11-12

…以下是获取每周第一天的函数:

let sd = new Date();
const startOfWeek = (date) => {
  let diff = date.getDate() - date.getDay() + (date.getDay() === 0 ? -6 : 1);
  return new Date(date.setDate(diff));
}
…我按如下方式调用该函数:

const startDay = startOfWeek(sd).toString();
…下面是我使用矩应用格式的地方:

moment(startDay).format('YYYY MMMM Do');
…但我的日期仍显示以下内容: 2018年11月12日星期一08:14:09 GMT-0600(中央标准时间)


…我能得到一些关于我做错了什么的帮助吗

我认为您正在寻找的js格式是:

时刻(startDay).format('YYYY-MM-DD')


格式
YYYY-MMMM-Do
将返回一个类似“2018年11月13日”的字符串。

这应该可以工作,但格式不正确,应该是
yyy-MM-D

let sd = new Date();
const startOfWeek = (date) => {
  let diff = date.getDate() - date.getDay() + (date.getDay() === 0 ? -6 : 1);
  return new Date(date.setDate(diff));
}
const startDay = startOfWeek(sd)
console.log(moment(startDay).format('YYYY-MM-D'));

.format()
函数返回格式化字符串。它不会永远建立对象的格式。仅供参考,矩有一个函数…您可能还想看看,因为它使用不可变对象,这可能更适合React。您可以在使用行
矩(startDay).format('YYYY MMMM Do')的地方添加更多代码吗请?在查看了您的矩格式字符串后,不清楚您为什么会得到输出“Mon Nov 12 2018 08:14:09 GMT-0600(中央标准时间)”。谢谢,这很有效,即使在控制台中输出,格式也是我想要的。。。但是,通过浏览器,它仍然显示2018年11月12日星期一10:54:17 GMT-0600(中央标准时间)…当通过控制台输出时,您的补救措施仍然有效。有什么理想为什么要反映在网页上?我正在使用ReactJS,您如何显示它?你能分享你的代码片段吗?奇怪的是,当输出到控制台时,这会起作用,但浏览器仍然显示以下内容:2018年11月12日星期一11:08:23 GMT-0600(中央标准时间)。。。在文本输入字段中显示日期,尽管我确实认为这会有所不同。