it-swarm.com.de

Funktion zum Abrufen des gestrigen Datums in Javascript im Format TT / MM / JJJJ

Ich habe eine Weile nach dem gestrigen Datum im Format TT/MM/JJJJ gesucht. Hier ist mein aktueller Code:

var $today = new Date();
var $dd = $today.getDate();
var $mm = $today.getMonth()+1; //January is 0!

var $yyyy = $today.getFullYear();
if($dd<10){$dd='0'+dd} if($mm<10){$mm='0'+$mm} $today = $dd+'/'+$mm+'/'+$yyyy;

Damit bekomme ich das heutige Datum im Format TT/MM/JJJJ (danke SO). Aber wenn ich das versuche:

var $yesterday = $today.getDate()-1;

wie auf dieser Site anderswo empfohlen (Link verloren), erhalte ich die Fehlermeldung, dass getDate () für dieses Objekt nicht gefunden wurde.

Ich benutze mein Skript mit Sahi, aber ich glaube nicht, dass es verknüpft ist, da Sahi keine Probleme mit Javascript hat.

Danke im Voraus.

23
user1881815

Das Problem hier scheint zu sein, dass Sie $today Neu zuweisen, indem Sie ihm einen String zuweisen:

$today = $dd+'/'+$mm+'/'+$yyyy;

Strings haben kein getDate.

Außerdem gibt $today.getDate()-1 nur den Tag des Monats minus eins an. es gibt Ihnen nicht das vollständige Datum von "gestern". Versuche dies:

$today = new Date();
$yesterday = new Date($today);
$yesterday.setDate($today.getDate() - 1); //setDate also supports negative values, which cause the month to rollover.

Wenden Sie dann einfach den von Ihnen geschriebenen Formatierungscode an:

var $dd = $yesterday.getDate();
var $mm = $yesterday.getMonth()+1; //January is 0!

var $yyyy = $yesterday.getFullYear();
if($dd<10){$dd='0'+$dd} if($mm<10){$mm='0'+$mm} $yesterday = $dd+'/'+$mm+'/'+$yyyy;

Aufgrund der letzten Anweisung ist $yesterday Jetzt ein String (nicht ein Date), das das formatierte Datum enthält.

59
Sam

Versuche dies:

function getYesterdaysDate() {
    var date = new Date();
    date.setDate(date.getDate()-1);
    return date.getDate() + '/' + (date.getMonth()+1) + '/' + date.getFullYear();
}
19
katranci

Sie überschreiben $today in der if-Anweisung.

if($dd<10){$dd='0'+dd} if($mm<10){$mm='0'+$mm} $today = $dd+'/'+$mm+'/'+$yyyy;

Es ist dann kein Date () Objekt mehr - daher der Fehler.

3
madflow