Wie formatiere ich {{$ timestamp}} als MM / TT / JJJJ in Postman?


75

In Postman fügt die dynamische Variable {{$timestamp}} den aktuellen Unix-Zeitstempel in eine Anforderung ein. (Dargestellt als die Anzahl der Sekunden seit dem 1. Januar 1970)

"currentTime": "1510934784"

Die API, mit der ich arbeite, erwartet jedoch Zeitstempel, die als formatiert sind MM/DD/YYYY.

"currentDate": "11/17/2017"

Wie füge ich das aktuelle Datum (formatiert als MM/DD/YYYY) in meine Anfrage bei Postman ein?


Sie können JS-Code in die Registerkarte "Skript vor der Anforderung" schreiben, um dies zu tun
— Chakradhar Kasturi

@chakri Kannst du das mit einer Antwort genauer erklären?
— Stevoisiak

1
Fügen Sie den folgenden Code in die Registerkarte für das Skript vor der Anfrage ein postman.setEnvironmentVariable("$$timestamp",new Date()); und verwenden Sie in Ihrer Anfrage einfach{{$$timestamp}}
— chakradhar kasturi

Antworten:


117

Sie können moment.js mit Postman verwenden, um das Zeitstempelformat zu erhalten.

Sie können dies dem Pre-Request-Skript hinzufügen:

const moment = require('moment');
pm.globals.set("today", moment().format("MM/DD/YYYY"));

Dann beziehen Sie sich, {{today}}wo immer Sie es brauchen.

Wenn Sie dies zu hinzufügen Collection Level Pre-request Script, wird es für jede Anforderung in der ausgeführt Collection. Anstatt es allen Anforderungen einzeln hinzufügen zu müssen .

Für weitere Informationen zur Verwendung momentin Postman habe ich einen kurzen Blog-Beitrag geschrieben: https://dannydainton.com/2018/05/21/hold-on-wait-a-moment/


Dies kann nicht wahr sein. Postbote unterstützt
— derzeit das

Hooo sehr nett. Dies wird einem Los mit Pre- und Post-Skripten helfen. Vielen Dank
— Pablo Palacios

5
Um Namenskonflikte zu vermeiden, möchten Sie möglicherweise einen anderen Namen wie {{today}}oder verwenden {{datestamp}}.
— Stevoisiak

Sicher, es war nur ein Beispiel dafür, wie man es benutzen kann. Der Variablenname muss offensichtlich Ihren eigenen Bedürfnissen / Ihrem Kontext entsprechen oder was Sie tun. Kopieren Sie einfach mein Beispiel und fügen Sie es in Ihre Lösung ein ... was niemals gut ist. :)
— Danny Dainton

42

Verwenden Sie die Registerkarte Skript vor der Anforderung, um Javascript zu schreiben und das Datum in einer Variablen abzurufen und zu speichern:

const dateNow= new Date();
pm.environment.set('currentDate', dateNow.toISOString());

und verwenden Sie es dann im Anforderungshauptteil wie folgt:

"currentDate": "{{currentDate}}"

4
Es muss eine Möglichkeit geben, ein Datum zu ermitteln, ohne für jede Anforderung ein Voranforderungsskript zu ändern. Das ist verrückt.
— Triynko

3
Es gibt globale Variablen, die Sie einmal festlegen und an anderen Stellen lesen können.
— Morgan Kenyon

2
Legen Sie die Anforderungen in einen Ordner oder eine Sammlung, dann können Sie diese Art von Variablen einmal im
— Vorskript

Siehe meine Antwort über dieser. Es zeigt Ihnen, wie Sie Vorskripte für eine Sammlung festlegen, damit Sie sie nicht in jede einzelne Anforderung einfügen müssen.
— DeadlyChambers

Postman unterstützt jetzt {{$ isoTimestamp}}, Ausgabe: "2020-09-16T18: 11: 41.397Z"
— Lance

8

Meine Lösung ähnelt der von Payam, außer dass ich sie verwende

const dateNow = new Date();
postman.setGlobalVariable("currentDate", dateNow.toLocaleDateString());

Wenn Sie die "3 Punkte" im Ordner drücken und auf "Bearbeiten" klicken

Geben Sie hier die Bildbeschreibung ein

Legen Sie dann für alle Aufrufe Pre-Request-Skripte fest, damit die globale Variable immer verfügbar ist.

Geben Sie hier die Bildbeschreibung ein


Sie könnten auch verwenden - pm.globals.set("currentDate", new Date().toLocaleDateString());Würde Ihnen dies nicht einen Zeitstempel im Format "TT / MM / JJJ" anstelle von "MM / TT / JJJJ" geben?
— Danny Dainton

5

Jedes zukünftige Datum in JavaScript (Postboten-Test verwendet JavaScript) kann wie folgt abgerufen werden:

var dateNow = new Date();  
var twoWeeksFutureDate = new Date(dateNow.setDate(dateNow.getDate() + 14)).toISOString();

postman.setEnvironmentVariable("future-date", twoWeeksFutureDate);
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.