1131 Stimmen

Wie kann man 30 Minuten zu einem JavaScript-Datumsobjekt hinzufügen?

Ich möchte ein Datumsobjekt erhalten, das 30 Minuten später als ein anderes Datumsobjekt ist. Wie kann ich das mit JavaScript erreichen?

5voto

ISK Punkte 75
var add_minutes =  function (dt, minutes) {
return new Date(dt.getTime() + minutes*60000);
}
 console.log(add_minutes(new Date(2014,10,2), 30).toString());

4voto

German Gracia Punkte 303

Andere Lösung:

var dateAv = new Date();
var endTime = new Date(dateAv.getFullYear(), dateAv.getMonth(), dateAv.getDate(), dateAv.getHours(), dateAv.getMinutes() + 30);

4voto

Ouroborus Punkte 14170

Verwenden Sie eine vorhandene Bibliothek, von der bekannt ist, dass sie mit den Eigenheiten der Zeitberechnung umgehen kann. Mein derzeitiger Favorit ist moment.js .

<script src="//cdnjs.cloudflare.com/ajax/libs/moment.js/2.13.0/moment.js"></script>
<script>
 var now = moment(); // get "now"
 console.log(now.toDate()); // show original date
 var thirty = moment(now).add(30,"minutes"); // clone "now" object and add 30 minutes, taking into account weirdness like crossing DST boundries or leap-days, -minutes, -seconds.
 console.log(thirty.toDate()); // show new date
</script>

3voto

Blaskovicz Punkte 5982

Für Faulpelze wie mich:

Kips Antwort (von oben) in coffeescript, unter Verwendung einer "enum" und mit demselben Objekt:

Date.UNIT =
  YEAR: 0
  QUARTER: 1
  MONTH: 2
  WEEK: 3
  DAY: 4
  HOUR: 5
  MINUTE: 6
  SECOND: 7
Date::add = (unit, quantity) ->
  switch unit
    when Date.UNIT.YEAR then @setFullYear(@getFullYear() + quantity)
    when Date.UNIT.QUARTER then @setMonth(@getMonth() + (3 * quantity))
    when Date.UNIT.MONTH then @setMonth(@getMonth() + quantity)
    when Date.UNIT.WEEK then @setDate(@getDate() + (7 * quantity))
    when Date.UNIT.DAY then @setDate(@getDate() + quantity)
    when Date.UNIT.HOUR then @setTime(@getTime() + (3600000 * quantity))
    when Date.UNIT.MINUTE then @setTime(@getTime() + (60000 * quantity))
    when Date.UNIT.SECOND then @setTime(@getTime() + (1000 * quantity))
    else throw new Error "Unrecognized unit provided"
  @ # for chaining

2voto

Jim Davis Punkte 1200

Nur eine weitere Option, die ich geschrieben habe:

DP_DateExtensions Bibliothek

Es ist übertrieben, wenn dies alles ist, was Sie für die Datumsverarbeitung brauchen, aber es wird tun, was Sie wollen.

Unterstützt Datums-/Zeitformatierung, Datumsmathematik (Addieren/Subtrahieren von Datumsteilen), Datumsvergleich, Datumsanalyse usw. Es ist frei verfügbar.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X