Wie nennt man einen menschenlesbaren Zeitstempel durch Solidität? [Duplikat]

Wie bekomme ich einen menschenlesbaren Zeitstempel durch Solidität? Ich weiß, dass es block.timestamp gibt , um die Unix-Zeit zu erhalten. Aber ich möchte es in einem für Menschen lesbaren Format wie Mon Jun 19 11:51:19 IST 2017 .

Bitte vorschlagen.

Warum willst du das? kannst du mehr Kontext geben? Denn für mich würde ein vom Menschen lesbares Format verwendet, um das Datum für einen Benutzer anzuzeigen, was über die Schnittstelle erfolgen kann, die mit Ihrem Vertrag interagiert (wie beispielsweise eine Website).
Ich möchte die Blockerstellungszeit abrufen. Wenn ich dasselbe über Javascript anrufe, erhalte ich eine andere Zeit. Ich möchte es aufrufen, damit ich weiß, wann der Datenblock zur Kette hinzugefügt wurde.
Ich möchte eine Unix-Zeit wie 1460714400 in einem für Menschen lesbaren Format wie Mon Jun 19 11:51:19 IST 2017 (oder einem anderen für Menschen lesbaren Format) erhalten. Bitte helfen Sie

Antworten (1)

Ich kann mir keinen Anwendungsfall dafür innerhalb eines Ethereum-Vertrags vorstellen. Wenn Sie über menschenlesbare Formate sprechen, scheint es mir, als wollten Sie eine Benutzeroberfläche erstellen.

Ich würde empfehlen, sich mit Trüffel zu beschäftigen . Es ist ein hervorragendes Framework zum Erstellen web3von Anwendungen, bei denen es sich im Wesentlichen nur um Websites handelt, die mit Verträgen in der Ethereum-Blockchain kommunizieren können. Dann können Sie einfach einen web3Anruf tätigen, um block.timestampin Sekundenschnelle zu erhalten, und normales JavaScript verwenden, um es in ein für Menschen lesbares Format zu konvertieren und es in einem Browser wie Google Chrome anzuzeigen, indem Sie Erweiterungen wie Metamask verwenden .

Zur Konvertierung von Sekunden seit der Unix-Epoche in ein lesbares Format mit JavaScript siehe: https://stackoverflow.com/questions/5416920/timestamp-to-human-readable-format

Danke Eric für die Hilfe. Es gibt jedoch mehrere Anwendungsfälle, in denen die Kenntnis der Blockerstellungszeit hilfreich sein kann. Zum Beispiel, wenn eine Anzeige bei der Polizei erstattet wird. Wohlhabende und politisch starke Menschen belasten die normale Öffentlichkeit häufig, indem sie die Beschwerde manipulieren. In diesem Fall kann eine Person jedoch wissen, wann ihr Block aktualisiert wurde (durch Abrufen der Blockerstellungs-/Aktualisierungszeit).
Ich stimme zu, dass die Blockerstellungszeit nützlich ist, aber Sie missverstehen meinen Punkt. Das Formatieren der Blockzeit in ein lesbares Format sollte über die Benutzeroberfläche erfolgen, die auf die Blockzeiten in der Ethereum-Blockchain verweisen kann, ohne auf Ethereum selbst ausgeführt zu werden
Sehen Sie sich Projekte wie Truffle, Metamask, Mist und ITFS an. Die Idee ist, dass Sie Websites erstellen können, die dezentral betrieben werden, wo keine einzelne Partei die Kontrolle hat. Sie können also normale Frontends verwenden, die in HTML, JavaScript und CSS geschrieben sind, aber die Backend-Logik wird von Ethereum übernommen
Danke Erich. Können wir dieselbe Unix-Zeit, die über block.timestamp abgerufen wurde, nicht direkt in einen Smart-Vertrag in einem beliebigen Funktionsaufruf im selben Vertrag konvertieren. Ich bin jedoch neu bei Ethereum und kann sehen, dass es Javascript ziemlich ähnlich ist. Geben Sie bitte Ihr Feedback ab.
Derzeit gibt es dafür keine einfache Möglichkeit und auch keine Notwendigkeit. Und Solidity hat lediglich eine ähnliche Syntax wie JavaScript. Aber im Hintergrund kompiliert es zu EVM-Bytecode, der völlig anders ist als JavaScript
Aber Sie können JavaScript verwenden, um mit bereitgestellten Verträgen zu interagieren, wo Truffle super cool ist. Sehen Sie sich einige der Beispiele in der Dokumentation an: truffle.readthedocs.io/en/develop/getting_started/contracts
Ihr Ethereum-Vertrag kann also die unix.blockstampüber eine Funktion im Vertrag verfügbar machen, und dann können Sie mit Truffle JavaScript verwenden, um Ihre Funktion aufzurufen (die einen Unix-Zeitstempel zurückgibt), sie in ein lesbares Format zu formatieren und auf einer HTML-Seite anzuzeigen
Das habe ich, aber mein Ruf ist weniger als 15, also wird es nicht öffentlich aufgenommen.
Sie müssen auf das Häkchen klicken