Autor |
Nachricht |
Kanuna
Threadersteller
Dabei seit: 11.03.2013
Ort: GB
Alter: 41
Geschlecht: -
|
Verfasst Fr 26.04.2013 07:17
Titel Acrobat Formular - aktuelles Datum formatieren |
|
|
Hallo!
Ich habe ein PDF-Formular, in welchem ein aktuelles Datum per Javascript eingefügt werden soll, wenn das PDF geöffnet wird. An sich kein Problem, das Script mit var.datum etc. habe ich schon längst gefunden.
Nun habe ich allerdings das Problem, dass dieses aktuelle Datum ein anderes Format als dd.mm.yyyy haben soll. Wenn ich dieses Skript:
Zitat: | var datum = this.getField("Datum");
var datum = new Date();
var tag = datum.getDate();
var monat = datum.getMonth() +1;
var jahr = datum.getYear() +1900;
datum.value = tag+"."+monat+"."+jahr; |
verwende, ist klar, dass ich ein Datumsfeld in der Form dd.mm.yyyy bekomme. Meine Formatierung sollte allerdings so aussehen:
yyyymmdd
Und ich bekomme es einfach nicht hin. Ich habe es auch mit diesem Script:
Zitat: | var f = this.getField("Datum");
f.value = util.printd("yyyymmdd", new Date()); |
probiert, da habe ich allerdings das Problem, dass nicht das aktuelle Tagesdatum gezogen wird. Heißt, das Feld beschreibt sich nicht automatisch neu.
Da ich von Java-Scripten prinzipiell recht wenig Ahnung habe und mich nur durch das Internet gelesen habe, brauche ich jetzt einfach mal Hilfe :>
Zusammengefasst:
Benötigt wird ein Datumsfeld für das aktuelle Tagesdatum, welches ich in die Form yyyymmdd zwängen kann.
Falls irgendjemand Rat weiß, wäre ich sehr dankbar.
Grüße!
Zuletzt bearbeitet von Kanuna am Fr 26.04.2013 07:33, insgesamt 1-mal bearbeitet
|
|
|
|
|
Poolart
Dabei seit: 07.11.2006
Ort: Erkrath
Alter: 55
Geschlecht:
|
Verfasst Fr 26.04.2013 09:03
Titel
|
|
|
Hast du auch mal ausprobiert einfach mal
datum.value = tag+"."+monat+"."+jahr;
in
datum.value = jahr+monat+tag;
umzustellen wenn du yyyymmdd rausbekommen willst.
Das müsste doch auch funktionieren.
Andreas
|
|
|
|
|
Anzeige
|
|
|
Kanuna
Threadersteller
Dabei seit: 11.03.2013
Ort: GB
Alter: 41
Geschlecht: -
|
Verfasst Fr 26.04.2013 09:34
Titel
|
|
|
Dann rechnet er alles zusammen und gibt das Ergebnis aus. Heute 2013+4+26 = 2043. Alles schon versucht
Ein Freund und ich haben es jetzt folgendermaßen geregelt:
Zitat: | var datum = this.getField("Datum");
var jetzt = new Date();
var tag = jetzt.getDate();
var monat = jetzt.getMonth() +1;
var jahr = jetzt.getYear() +1900;
datum.value = jahr+""+monat+""+tag;
if (monat<10 && tag<10)
{
datum.value = jahr+"0"+monat+"0"+tag;
}
else if (monat<10 && tag>=10)
{
datum.value = jahr+"0"+monat+""+tag;
}
else if (monat>=10 && tag<10)
{
datum.value = jahr+""+monat+"0"+tag;
}
else
{
datum.value = jahr+""+monat+""+tag;
} |
So zieht er sich das aktuelle Datum in der Form YYYYMMDD. Da Acrobat dann nicht erkennt, dass die "0" bei 04 (für April) auch mitgeschrieben werden muss, mussten wir noch diese if-Varianten einbauen. Für die Fälle, dass Monate nur eine einstellige Zahl haben, ebenso wenn Tage eine einstellige Zahl haben.
Was leider nicht möglich war, ist, dass er das Datum automatisch aktualisiert, sobald man das Dokument öffnet. Da gibt es wohl auch eine Möglichkeit über die Dokument-Javascripts, die muss ich mir erstmal noch ansehen. Gelöst habe ich das nun, indem ich im Reiter "Aktionen" die Aktion hinzugefügt habe, das Feld zu aktivieren (=anzuklicken), daraufhin wird das Formular zurückgesetzt. Da das Script ja weiterhin läuft, zieht er sich sofort das aktuelle Datum. Man muss also nur einmal in das Feld klicken. Geht auch.
Grüße!
|
|
|
|
|
DEKONSTRUKTIV
Dabei seit: 22.06.2009
Ort: bln
Alter: -
Geschlecht: -
|
Verfasst Fr 26.04.2013 12:25
Titel
|
|
|
Kanuna hat geschrieben: | Dann rechnet er alles zusammen und gibt das Ergebnis aus. Heute 2013+4+26 = 2043. |
unsinn.
|
|
|
|
|
Kanuna
Threadersteller
Dabei seit: 11.03.2013
Ort: GB
Alter: 41
Geschlecht: -
|
Verfasst Fr 26.04.2013 12:40
Titel
|
|
|
DEKONSTRUKTIV hat geschrieben: | Kanuna hat geschrieben: | Dann rechnet er alles zusammen und gibt das Ergebnis aus. Heute 2013+4+26 = 2043. |
unsinn. |
Wow.
|
|
|
|
|
bacon
Dabei seit: 24.10.2007
Ort: -
Alter: -
Geschlecht: -
|
Verfasst Fr 26.04.2013 12:42
Titel
|
|
|
Stichwort Operator-Überladung, das ist schon richtig so. "Unsinn" mag ja generell gültig sein, aber wenn Du die Kritik nicht wenigstens grob erläuterst, kann damit keiner was anfangen.
|
|
|
|
|
pantonine
Dabei seit: 03.03.2011
Ort: gehen Sie bitte weiter…
Alter: -
Geschlecht: -
|
Verfasst Fr 26.04.2013 12:42
Titel
|
|
|
Nö, nicht Unsinn. Nennt sich dynamische Typumwandlung. Abhilfe schafft, zusätzlich einen String zu konkatenieren.
Code: | alert(''+jahr+monat+tag); |
Kannst natürlich auch explizit umwandeln.
Code: | alert(String(jahr) + monat + tag); |
[edit]
Korrektur. Ist nicht mal ne Typumwandlung.
Zitat: | alert(typeof jahr); // number |
Zuletzt bearbeitet von pantonine am Fr 26.04.2013 12:45, insgesamt 2-mal bearbeitet
|
|
|
|
|
pantonine
Dabei seit: 03.03.2011
Ort: gehen Sie bitte weiter…
Alter: -
Geschlecht: -
|
Verfasst Fr 26.04.2013 12:49
Titel
|
|
|
Zitat: | Ein Freund und ich haben es jetzt folgendermaßen geregelt: | Dein Freund uns Du sollten noch etwas mehr die Doku lesen.
Zitat: |
Code: | var jahr = jetzt.getYear() +1900;
|
| einfach nur bäh getFullYear()
Zitat: | Code: | if (monat<10 && tag<10)
{
datum.value = jahr+"0"+monat+"0"+tag;
}
else if (monat<10 && tag>=10)
{
datum.value = jahr+"0"+monat+""+tag;
}
else if (monat>=10 && tag<10)
{
datum.value = jahr+""+monat+"0"+tag;
}
else
{
datum.value = jahr+""+monat+""+tag;
} |
| Mit Verlaub: Logik: 6!
Code: | if (tag < 10) {
tag = '0' + tag;
}
if (monat < 10) {
monat = '0' + monat;
}
datum.value = '' + jahr + monat + tag; |
|
|
|
|
|
|
|
|
Ähnliche Themen |
Formular: Aktuelles Datum ausgewählt
Acrobat Formular - Datum nicht in der Vergangenheit
Adobe Acrobat Formular: Text formatieren
pdf automatisch aktuelles datum (java)
Datum formatieren in PHP
[PHP, MySQL] Datum formatieren
|
|