Uhrzeit ggf. ab / aufrunden

Hallo,

ich bin Monteur und wir füllen täglich Stundenzettel aus (Kundendienst) Zeitangaben von/bis Uhr.
Das die Aktuelle Zeit eingetragen wird hab ich schon erfast mit
Aktuelle Uhrzeit
var f = this.getField("time_1");
f.value = util.printd("HH:MM", new Date());

Da wir nicht exakt auf 1 Minute abrechnen, wäre es von vorteil wenn die Zeit gerundet auf volle 5 / 10er angegeben wird !

Bsp.
11:44 Uhr = 11:40 Uhr
11:46 Uhr = 11:50 Uhr
11:56 Uhr = 12:00 Uhr

Könnte mir jemand ein Tipp geben wie ich das am besten hin-bekomme oder könnte jemand sogar was fertig machen damit das so läuft ???
Ich habe schon an true / false methode gedacht.

Der Code wird als Javascript in ein PDF Formular hinterlassen Felder ---> ( von: / bis: ) Uhrzeit


Vielen Dank für eure mühe
 

httpdigest

Top Contributor
Verarbeitung wie folgt:
Dein gegebener Code:
Javascript:
var f = this.getField("time_1");
f.value = util.printd("HH:MM", new Date());
Neuer Code (ersetzt den Code oben):
Javascript:
function round(date) {
  return new Date(Math.round(date / 6e5) * 6e5);
}
var f = this.getField("time_1");
f.value = util.printd("HH:MM", round(new Date()));
 

httpdigest

Top Contributor
Javascript:
function round(date, minuten) {
  var factor = minuten * 6e4;
  return new Date(Math.round(date / factor) * factor);
}
var f = this.getField("time_1");
f.value = util.printd("HH:MM", round(new Date(), 10));
EDIT: Der Parameter, mit aktuell 10 als Argument, gibt an, auf wieviel Minuten gerundet werden soll.
 
Zuletzt bearbeitet:
Klasse das funzt ... ich runde auf 5er
Code:
function round(date, minuten) {
  var factor = minuten * 6e4;
  return new Date(Math.round(date / factor) * factor);
}
var f = this.getField("time_1");
f.value = util.printd("HH:MM", round(new Date(), 5));

ich will das nun ausrechnen lassen und habe gedacht das geht mit dem
Code:
var f = this.getField("time2")-this.getField("time1"); 
f.value = util.printd("HH:MM");
leider wirft der im Feld nichts aus ??
könnte nochmal einer Helfen :)
 

Anhänge

  • Bsp. PDF-Formular.png
    Bsp. PDF-Formular.png
    9,7 KB · Aufrufe: 3
Code:
function round(date, minuten) {
  var factor = minuten * 6e4;
  return new Date(Math.round(date / factor) * factor);
}
var f = this.getField("bis1");
f.value = util.printd("HH:MM", round(new Date(), 15));

besteht hier die möglichkeit das erst bei 6 aufgerundet und bei 5 abgerundet wird oder wird immer der mittelwert angenommen ?

Bsp.
10:05 = 10:00 Uhr
10:06 = 10:15 Uhr

wenn das geht könnte mir jemand die Lösung dazu schreiben
 
blöde frage vergessen wir diese !

andere Frage , zwischen 2 Zeiten (Ankuft / Abfahrt) bekomme ich ein Differenz ausgegeben
Bsp.

10:00 - 10:07 = 0:07

kann man dieses ergebnis immer um volle 15 aufrunden lassen ?
Wenn ich nur 6 min. beim kunde bin würde ja abgerundet werden !!! Richtig ?
 
Zuletzt bearbeitet:

httpdigest

Top Contributor
kann man dieses ergebnis immer um volle 15 aufrunden lassen ?
Ja, das ist sehr leicht möglich.
Aber das artet etwas in Auftragsarbeit hier aus. Du stellst eine Frage, ohne die Absicht, das selbst implementieren zu wollen und suchst jetzt jemanden mit einer fertigen Lösung.
Mal anders gefragt: Wenn du das allerdings selbst umsetzen willst, wo hakt es denn aktuell, dass du das nicht selbst umsetzt?
 
Sorry ich will kein Überlasten, ich versuche es mal selbst , wahrscheinlich finde ich paar brocken im jetzigen code die ich nutzen kann !
Wenn ich nicht mehr weiterweiß kann ich ja mal den erstellten code hier vorbringen !
Danke trotzdem für die mühe
 

httpdigest

Top Contributor
das hab ich hinbekommen das immer aufgerundet wird , aber ich bekomme das nicht gebacken das das Ergebnis in ein Feld eingetragen wird !
Code:
 var interval = 15 * 60 * 1000; 
new Date(Math.ceil(new Date().getTime()/interval)*interval);

Die Sprache ist ja brutal, ich guck mir paar Video & Bücher an vielleicht verstehe ich das komplexe zeug dann besser
 
so fertig ...

Code:
function round(date, minuten) {
  var factor = minuten * 6e4;
  return new Date(Math.ceil(date / factor) * factor);
}
var f = this.getField("bis1");
f.value = util.printd("HH:MM", round(new Date(), 15));
 

Oben