NEWS
[GELÖST] Datum heute, morgen, übermorgen etc.
-
Moin,
ich würde gerne mir das Datum für morgen, übermorgen etc. in einem View Anzeigen lassen.
Gefunden habe ich folgendes JS:
var heute = new Date();
var morgen = new Date(heute.getTime()+(1000 * 60 * 60 * 24 * 1)); // übermorgen wäre dann am Ende eine 2 anstatt 1
alert(morgen.getDate());
Nun meine Frage, da ich nicht wirklich weiterkomme…:
Geht das mit dem Script? Wie binde ich es ein, als Script oder in ein Widget? Wie bekomme ich es in der View angezeigt?
Danke euch
und Gruß,
Tom
-
Moin,
ich kann dir bei deinem Script nicht helfen, aber ist vielleicht der "Calendar Schedule" Adapter eine Möglichkeit für dich?
-
So?
createState('Datum.Morgen', ""); createState('Datum.Uebermorgen', ""); var idMorgen = 'Datum.Morgen'; var idUebermorgen = 'Datum.Uebermorgen'; schedule(' 1 0 * * * ' , function(){ var heute = new Date(); var morgen = new Date(heute.getTime()+(1000 * 60 * 60 * 24 * 1)).toString(); var uebermorgen = new Date(heute.getTime()+(1000 * 60 * 60 * 24 * 2)).toString(); setState(idMorgen, morgen); setState(idUebermorgen, uebermorgen); });
in Vis kannst du dann mit einem basic - string die Daten anzeigen.
Ungetestet
-
Hi,
vielen Dank tempestas, die State´s legt er an, aber er füllt sie nicht.
Ich denke mal das ihm das Datum fehlt. Habe versucht es irgendwie zu übergeben, aber ich bekomme es nicht hin:
// var heute = new Date(); // var morgen = new Date(heute.getTime()+(1000 * 60 * 60 * 24 * 1)); // übermorgen wäre dann am Ende eine 2 anstatt 1 // alert(morgen.getDate()); createState('Datum.heute', ""); createState('Datum.Morgen', ""); createState('Datum.Uebermorgen', ""); // var datum = new Date(); // var heute = datum.getDate()+ "." + (datum.getMonth()+ 1)+"." + datum.getFullYear() ; var idheute = new Date(); var idMorgen = 'Datum.Morgen'; var idUebermorgen = 'Datum.Uebermorgen'; schedule(' 1 0 * * * ' , function (){ var heute = new Date(); var morgen = new Date(heute.getTime()+(1000 * 60 * 60 * 24 * 1)).toString(); var uebermorgen = new Date(heute.getTime()+(1000 * 60 * 60 * 24 * 2)).toString(); setState(idheute, heute); setState(idMorgen, morgen); setState(idUebermorgen, uebermorgen); });
Gruß,
Tom
-
idHeute ist falsch
var idheute = 'Datum.heute';
muss es heißen
Der Schedule wird immer um 1 Minute nach Mitternacht ausgeführt, da kann noch nichts befüllt sein
-
Oh Mann, vor lauter Bäume den Wald nicht gesehen, die Variable hatte ich auch schon so drin, aber meinst du ich hätte mir mal den cron angeschaut…. :lol:
Also, vielen Dank für dein Hilfe!
Gruß,
Tom
-
Wenn nur das Datum angezeigt werden soll, verwendet man besser formatDate().
const idHeute = 'Datum.Heute'; const idMorgen = 'Datum.Morgen'; const idUebermorgen = 'Datum.Uebermorgen'; createState(idHeute, "", {type: 'string'}); createState(idMorgen, "", {type: 'string'}); createState(idUebermorgen, "", {type: 'string'}); schedule('1 0 * * *', function() { var heute = formatDate(new Date(), 'DD.MM.YY'); var morgen = formatDate(new Date().getTime() + 1 * 24 * 3600000, 'DD.MM.YY'); var uebermorgen = formatDate(new Date().getTime() + 2 * 24 * 3600000, 'DD.MM.YY'); setState(idHeute, heute); setState(idMorgen, morgen); setState(idUebermorgen, uebermorgen); });
-
Hi Paul,
es ist mir immer wieder eine Freude wie schnell mann hier geholfen bekommt!
Vielen Dank dir und tempestas und natürlich auch dir wendy.
Genau das ist es was ich gesucht habe Paul! Ich stelle dann mal die Frage auf GELÖST…
Gruß,
Tom
-
Man könnte auch mit "setDate" ohne "rumrechnen" Tage zu einem Datum hinzurechnen..
z.B. so:
const idHeute = 'Datum.Heute'; const idMorgen = 'Datum.Morgen'; const idUebermorgen = 'Datum.Uebermorgen'; createState(idHeute, "", {type: 'string'}); createState(idMorgen, "", {type: 'string'}); createState(idUebermorgen, "", {type: 'string'}); schedule('1 0 * * *', function() { var date = new Date(); setState(idHeute, formatDate(date, 'DD.MM.YY')); setState(idMorgen, formatDate(date.setDate(date.getDate() + 1), 'DD.MM.YY')); setState(idUebermorgen, formatDate(date.setDate(date.getDate() + 2), 'DD.MM.YY')); });
Gruß
-
Hi Buzzy,
dann wird uebermorgen aber zum 01.04.2018 und nicht zum 31.03.2018.
Gruß,
Tom