我想显示区块链合约调用的时间。
我目前正在使用这种方法在区块链中节省时间
function userCheckIn(uint placeid) public {
userCount++;
checkins[userCount] = Checkin(placeid, msg.sender, now);
}
但是,now
这样在前端显示随机数
1555650125
1555651118
请给我任何建议吗?
非常感谢您。
答案 0 :(得分:2)
时间戳似乎正确。在大多数编程语言和计算机系统中,时间存储为时间戳记,并存储在纪元(unix时间戳记)中。这些是大(长)数字,代表从某些指定的预定义时间开始的秒数。
要将此时间戳记转换为人类可读的时间,可以使用任何在其构造函数中带有时间戳记的库。
// Create a new JavaScript Date object based on the timestamp
// multiplied by 1000 so that the argument is in milliseconds, not seconds.
var date = new Date(unix_timestamp*1000);
// Hours part from the timestamp
var hours = date.getHours();
// Minutes part from the timestamp
var minutes = "0" + date.getMinutes();
// Seconds part from the timestamp
var seconds = "0" + date.getSeconds();
// Will display time in 10:30:23 format
var formattedTime = hours + ':' + minutes.substr(-2) + ':' + seconds.substr(-2);
有关更多详细信息,请参考此post。
答案 1 :(得分:0)
这些不是随机数。这些是时间戳记,它们代表自1970年1月1日以来经过的毫秒数。要提取日期,您需要执行以下操作:
function userCheckIn(uint placeid) public {
userCount++;
checkins[userCount] = Checkin(placeid, msg.sender, new Date(now) );
}
由于now
为您提供了前端的有效时间戳,所以new Date(now)
可以轻松为您提供时间和日期。如果要按月,日间等进一步细化此日期,而不是使用默认的js方法,则可以查找momentJS library。