vielen Dank, dass Sie sich die Zeit genommen haben, dies zu lesen.
Ich habe ein bisschen Probleme mit der Zeit in Solidity. Ich möchte, dass der Eigentümer eines Vertrags dem Konstrukteur eine Frist in Tagen (die im Rest des Vertrags verwendet wird) setzen kann. Ich habe das geschrieben:
constructor(uint _price, uint _days) public {
owner = msg.sender;
price = _price;
deadlineInDays = now + _days;
}
Aber wie Sie vielleicht wissen, wird, wenn der Eigentümer einen Wert in _days eingibt, dieser (jetzt) zum Epochenzeitformat hinzugefügt. Wenn ich es zum Beispiel auf "10" setze, wenn ich diese Funktion aufrufe, um es zurückzugeben:
function getPriceAndDeadline() public view returns (uint _price, uint _deadline)
{
return (price, deadlineInDays);
}
Es gibt so etwas zurück:
_price 1000
_deadline 1544005222 // this is only ten seconds after I ran the constructor
Ich wollte offensichtlich, dass es das zurückgibt, was "jetzt" plus "_days" in Tagen ist, nicht in Sekunden.
Ich habe es versucht (unten), aber es funktioniert nicht.
constructor(uint _price, uint _days) public {
owner = msg.sender;
price = _price;
deadlineInDays = now + _days days;
}
Irgendwelche Ideen, wie man damit umgeht?
Ich freue mich über jeden Input im Voraus! Beifall!
Verwenden
deadlineInDays = now + _days * 1 days;
Es wird funktionieren.
Lukas Danton