NEWS
KW aus Datum in einer Schleife möglich?
-
Kann ich in einer Schleife aus einem Datum die Kalenderwoche dieses Datums ausgeben?
Per neuem Block "getHistory" bekomme ich den Zeitstempel, möchte das aber als KW ausgeben.
Hat hier zufällig jemand ein Beispielblockly für mich?Anbei Ermittlung per js:
// Woche ermitteln var date = new Date(); var currentThursday = new Date(date.getTime() +(3-((date.getDay()+6) % 7)) * 86400000); var yearOfThursday = currentThursday.getFullYear(); var firstThursday = new Date(new Date(yearOfThursday,0,4).getTime() +(3-((new Date(yearOfThursday,0,4).getDay()+6) % 7)) * 86400000); var weekNumber = Math.floor(1 + 0.5 + (currentThursday.getTime() - firstThursday.getTime()) / 86400000/7); log(weekNumber);Blockly mach ich nicht.
-
Kann ich in einer Schleife aus einem Datum die Kalenderwoche dieses Datums ausgeben?
Per neuem Block "getHistory" bekomme ich den Zeitstempel, möchte das aber als KW ausgeben.
Hat hier zufällig jemand ein Beispielblockly für mich?@rtwl sagte in KW aus Datum in einer Schleife möglich?:
bekomme ich den Zeitstempel, möchte das aber als KW ausgeben.
Ist ein schöner Feature-Request für den JavaScript-Adapter. Nehme ich mal mit auf.
-
@rtwl sagte in KW aus Datum in einer Schleife möglich?:
bekomme ich den Zeitstempel, möchte das aber als KW ausgeben.
Ist ein schöner Feature-Request für den JavaScript-Adapter. Nehme ich mal mit auf.
@haus-automatisierung sagte in KW aus Datum in einer Schleife möglich?:
Nehme ich mal mit auf.
Super Danke 👍
-
Anbei Ermittlung per js:
// Woche ermitteln var date = new Date(); var currentThursday = new Date(date.getTime() +(3-((date.getDay()+6) % 7)) * 86400000); var yearOfThursday = currentThursday.getFullYear(); var firstThursday = new Date(new Date(yearOfThursday,0,4).getTime() +(3-((new Date(yearOfThursday,0,4).getDay()+6) % 7)) * 86400000); var weekNumber = Math.floor(1 + 0.5 + (currentThursday.getTime() - firstThursday.getTime()) / 86400000/7); log(weekNumber);Blockly mach ich nicht.
Vielleicht kannst du mir trotzdem helfen.
ich habe diesen Code um aus dem aktuellen Datum die KW zu ermitteln.var currentDate = ts; currentDate.setHours(0, 0, 0, 0); var dayOfWeek = currentDate.getDay(); currentDate.setDate(currentDate.getDate() - dayOfWeek + (dayOfWeek === 0 ? -6 : 1)); var yearStart = new Date(currentDate.getFullYear(), 0, 1); var weekNumber = Math.ceil((((currentDate - yearStart) / 86400000) + 1) / 7); return weekNumber;die Variable
currentDatewird auf die Blockly-Variabletsgesetzt. In dieser ist der Timestamp aus dem History Adapter enthalten.Doch im Log steht dann folgendes:
TypeError: currentDate.setHours is not a functionKannst du den Fehler finden?
-
Vielleicht kannst du mir trotzdem helfen.
ich habe diesen Code um aus dem aktuellen Datum die KW zu ermitteln.var currentDate = ts; currentDate.setHours(0, 0, 0, 0); var dayOfWeek = currentDate.getDay(); currentDate.setDate(currentDate.getDate() - dayOfWeek + (dayOfWeek === 0 ? -6 : 1)); var yearStart = new Date(currentDate.getFullYear(), 0, 1); var weekNumber = Math.ceil((((currentDate - yearStart) / 86400000) + 1) / 7); return weekNumber;die Variable
currentDatewird auf die Blockly-Variabletsgesetzt. In dieser ist der Timestamp aus dem History Adapter enthalten.Doch im Log steht dann folgendes:
TypeError: currentDate.setHours is not a functionKannst du den Fehler finden?
@rtwl
Warum nimmst du nicht mein Script?
Komisch.
Habe es extra raus gesucht um es dir mitzuteilen.Musst du halt einmal vergleichen.
-
@rtwl
Warum nimmst du nicht mein Script?
Komisch.
Habe es extra raus gesucht um es dir mitzuteilen.Musst du halt einmal vergleichen.
Hab es mit deinem Skript auch probiert. Geht nicht. Ich meine es geht schon, um die aktuelle KW zu bekommen.
Ich bräuchte aber die KW aus dem Timestamp und dieser ist in Millisekunden anstelle des Datum-Format.Bräuchte daher ein Skript wie man ein Timestamp in ein Datums-Format umwandelt, damit das Skript funktioniert.
-
Vielleicht kannst du mir trotzdem helfen.
ich habe diesen Code um aus dem aktuellen Datum die KW zu ermitteln.var currentDate = ts; currentDate.setHours(0, 0, 0, 0); var dayOfWeek = currentDate.getDay(); currentDate.setDate(currentDate.getDate() - dayOfWeek + (dayOfWeek === 0 ? -6 : 1)); var yearStart = new Date(currentDate.getFullYear(), 0, 1); var weekNumber = Math.ceil((((currentDate - yearStart) / 86400000) + 1) / 7); return weekNumber;die Variable
currentDatewird auf die Blockly-Variabletsgesetzt. In dieser ist der Timestamp aus dem History Adapter enthalten.Doch im Log steht dann folgendes:
TypeError: currentDate.setHours is not a functionKannst du den Fehler finden?
@rtwl sagte in KW aus Datum in einer Schleife möglich?:
die Variable currentDate wird auf die Blockly-Variable ts gesetzt.
Weil
tsein Timestamp ist. Also numerisch. Du bräuchtest quasivar currentDate = new Date(ts);Aber das Script von @bahnuhr ist eh schöner (auf den ersten Blick) :)
-
@rtwl sagte in KW aus Datum in einer Schleife möglich?:
die Variable currentDate wird auf die Blockly-Variable ts gesetzt.
Weil
tsein Timestamp ist. Also numerisch. Du bräuchtest quasivar currentDate = new Date(ts);Aber das Script von @bahnuhr ist eh schöner (auf den ersten Blick) :)
-
@haus-automatisierung
gut, ich werde @bahnuhr ´s Skript nehmen.
bei deinem Vorschlag kommt dannReferenceError: newDate is not definedMein Testaufbau sieht so aus:

var currentDate = newDate(ts); return currentDate;
Hello! It looks like you're interested in this conversation, but you don't have an account yet.
Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.
With your input, this post could be even better 💗
Register Login