Javascript 如何在react中正确显示日期?

Javascript 如何在react中正确显示日期?,javascript,reactjs,date,Javascript,Reactjs,Date,我正在构建一个与solidity contract集成的web门户。在合同中,我将日期保存在uint中,如下1539491531 当我在网页上显示它时,它看起来是这样的: 它显示不同的日期。但是当我在代码中这样做的时候 <Feed.Date>{Date(date)}</Feed.Date> {Date(Date)} 所有日期都显示为现在的时间,如下所示:2018年10月15日星期一08:44:18 GMT+0530(印度标准时间) 我怎样才能解决这个问题?。有人能

我正在构建一个与solidity contract集成的web门户。在合同中,我将日期保存在
uint
中,如下
1539491531

当我在网页上显示它时,它看起来是这样的:

它显示不同的日期。但是当我在代码中这样做的时候

<Feed.Date>{Date(date)}</Feed.Date> 
{Date(Date)}
所有日期都显示为现在的时间,如下所示:
2018年10月15日星期一08:44:18 GMT+0530(印度标准时间)


我怎样才能解决这个问题?。有人能帮我解决这个问题吗?。谢谢。

您的问题是缺少新的
关键字

Date() // Mon Oct 15 2018 13:30:55 GMT+1000 (Australian Eastern Standard Time)
Date(1) // Mon Oct 15 2018 13:30:55 GMT+1000 (Australian Eastern Standard Time)
Date('something random') // Mon Oct 15 2018 13:30:55 GMT+1000 (Australian Eastern Standard Time)
但是,使用
新建

new Date() // Mon Oct 15 2018 13:30:55 GMT+1000 (Australian Eastern Standard Time)
new Date(1) // Thu Jan 01 1970 10:00:00 GMT+1000 (Australian Eastern Standard Time)
new Date('something random') // Invalid Date
见:

将其作为常规函数调用(即不使用新运算符)将返回字符串而不是日期对象

当您在不使用
new
的情况下调用
Date()
时,它将调用一个返回当前时间字符串的函数。它不接受任何参数,但在Javascript中,您可以向它传递任何您喜欢的参数,它仍然可以工作,因此它只会忽略您传递的任何参数,并返回一个
字符串,而不是当前时间的日期

typeof Date() // string
typeof new Date() // object
正如所指出的,您的时间戳看起来也是以秒为单位的,而不是以毫秒为单位的。
newdate()
-您只需乘以1000就可以了

new Date(1529491531) // Mon Jan 19 1970 02:51:31 GMT+1000 (Australian Eastern Standard Time)
new Date(1529491531 * 1000) // Wed Jun 20 2018 20:45:31 GMT+1000 (Australian Eastern Standard Time)

尝试调整代码,如下所示:

<Feed.Date>{ new Date(date) }</Feed.Date> 
{新日期(日期)}
通过创建日期对象(通过
new
),可以简化从UTC历元时间(即
date
)到人类可读日期字符串的转换


有关日期的详细信息,

您错过了新的日期(日期) 另外,可以尝试将该值乘以100

<Feed.Date>{new Date(date*100)}</Feed.Date> 
{新日期(日期*100)}

我认为您可以使用format功能来帮助您完成这项工作

Date.prototype.format=函数(格式)
{
变量o={
“M+”:this.getMonth()+1,//month
“d+”:this.getDate(),//天
“h+”:this.getHours(),//hour
“m+”:this.getMinutes(),//分钟
“s+”:this.getSeconds(),//秒
“q+”:Math.floor((this.getMonth()+3)/3),//季度
“S”:this.getmillizes()//毫秒
}
如果(/(y+/.test(format))format=format.replace(RegExp.$1,
(this.getFullYear()+“”).substr(4-RegExp.$1.length));
如果(新的RegExp(“(“+k+”)”)测试(格式))
format=format.replace(RegExp.$1,
RegExp.$1.length==1?o[k]:
(“00”+o[k])substr((“+o[k])长度);
返回格式;

}
如果时间戳不完整,*100用于补偿秒数。看,它看起来像那些时间戳,所以你需要乘以1000,以使其成为毫秒-UTC时间戳通常以秒为单位。不要发布图像,发布文本。不是每个人都能看到图像。