2009-09-15 21 views
10

Wir haben eine Anwendung, in der der Benutzer ein Datum eingeben muss, dessen Wert nicht mehr als 30 Tage nach dem aktuellen Datum liegt (dem Datum, an dem der Benutzer die Anwendung verwendet). Dies ist eine Flash-Anwendung, daher brauche ich eine Möglichkeit, dem aktuellen Datum 30 Tage hinzuzufügen und das richtige Datum zu erhalten. So etwas wie in JavaScript:Hinzufügen von Tagen zu Datum in ActionScript

myDate.setDate(myDate.getDate()+30); 

Oder in C#:

DateTime.Now.Add(30); 

Gibt es so etwas in Actionscript?

Antwort

27

Während die anderen Antworten arbeiten im sicher, es ist so einfach wie zu tun:

var dte:Date = new Date(); 
dte.date += 30; 
//the date property is the day of the month, so on Sept. 15 2009 it will be 15 

Dies wird auch den Monat erhöhen, wenn nötig und Jahr auch. Sie können dies auch mit den Eigenschaften für Monat und Jahr tun.

+1

Das ist großartig! Ich möchte nur betonen, dass dies nur in AS3 –

+1

funktioniert. Das stimmt. Beachten Sie auch, dass die Monatseigenschaft 0 basiert. Also Januar ist Monat 0 und Dezember ist Monat 11. –

1

Ich schreibe den Code von der Spitze meines Kopfes, ohne es zu kompilieren, aber ich würde getTime() verwenden. Etwas wie:

var today : Date = new Date(); 
var futureDate : Date = new Date(); 
futureDate.setTime(today.getTime() + (1000 * 60 * 60 * 24 * 30)); 

1000 * 60 * 60 * 24 * 30 = Millisekunden * Sekunden * Minuten * Stunden * Tage

Sinn macht?

3

Mein TimeSpan class könnte nützlich erweisen, hier (es ist eine Portierung von .NET System.TimeSpan):

var now : Date = new Date(); 
var threeDaysTime : Date = TimeSpan.fromDays(3).add(now); 
+0

Danke, andere Beispiele nur wenige Tage hinzugefügt, aber war der Monat nicht erhöhen. – Mark

5

Ich schlage vor, dass Sie hier: How can you save time by using the built in Date class?.

Es sollte wie folgt sein:

var date:Date = new Date(); 
date.setDate(date.date + 30); 
+1

date.date - Bei den Eigenschaften wird zwischen Groß- und Kleinschreibung unterschieden. – Virusescu

+0

Richtig, ich habe den Code aktualisiert. Ich mochte nie die ActionScript-Namenskonvention;) –

2

@Zerata

Millisekunden direkt hinzufügen, wird nicht funktionieren, wenn Daten über Tageslicht Sparwechsel sind ...

Sie können jedoch Sekunden direkt hinzufügen:

var Datum: Date = neues Datum(); date.seconds + = 86400; => Dies funktioniert auch, wenn Daten DLS-übergreifend geändert werden.

Maurice

Verwandte Themen