我正在构建具有整合性合同集成的Web门户。在合同中,我将日期保存在uint
中,就像这样1539491531
。
当我在网页上显示它时,它看起来像这样:
显示不同的日期。但是当我在代码中喜欢这样的时候。
<Feed.Date>{Date(date)}</Feed.Date>
所有日期都显示为现在的时间,例如:Mon Oct 15 2018 08:44:18 GMT+0530 (India Standard Time)
如何解决此问题?有人可以帮我解决这个问题吗?谢谢。
答案 0 :(得分:2)
您错过了Date(日期)之前的新内容 另外,也许尝试将该值乘以100
products: mainProducts
答案 1 :(得分:1)
您的问题是您缺少new
关键字。
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
:
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
请参见edvilme:
将其作为常规函数调用(即不使用new运算符)将返回字符串而不是Date对象
在不使用Date()
的情况下调用new
时,它将调用一个函数,该函数返回当前时间的字符串。它不带任何参数,但是在Javascript中,您可以将任何参数传递给它,并且仍然可以使用,因此它只是忽略您传递的任何参数,并返回 string
,并且不是当前时间的日期。
typeof Date() // string
typeof new Date() // object
正如{{3}}所指出的,您的时间戳也看起来是秒,而不是new Date()
要求的毫秒-您可以乘以1000使其生效< / p>
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)
答案 2 :(得分:1)
尝试像这样调整代码:
<Feed.Date>{ new Date(date) }</Feed.Date>
通过创建日期对象(通过new
),可以简化从UTC纪元时间(即date
的值)到人类可读的日期字符串的转换。
有关日期的更多信息,see this MDN article
答案 3 :(得分:0)
我认为您可以使用格式功能来帮助您解决此问题。
Date.prototype.format = function(format)
{
var o = {
"M+" : this.getMonth()+1, //month
"d+" : this.getDate(), //day
"h+" : this.getHours(), //hour
"m+" : this.getMinutes(), //minute
"s+" : this.getSeconds(), //second
"q+" : Math.floor((this.getMonth()+3)/3), //quarter
"S" : this.getMilliseconds() //millisecond
}
if(/(y+)/.test(format)) format=format.replace(RegExp.$1,
(this.getFullYear()+"").substr(4 - RegExp.$1.length));
for(var k in o)if(new RegExp("("+ k +")").test(format))
format = format.replace(RegExp.$1,
RegExp.$1.length==1 ? o[k] :
("00"+ o[k]).substr((""+ o[k]).length));
return format;
}
然后您可以像这样使用它:
var d1 = new Date();
d1.format('yyyy-MM-dd');