Sie haben ein paar Probleme hier los:
1) Dies kann in der Frage nur ein Tippfehler sein, aber das Datum Konstruktor muss groß geschrieben werden: new Date(...
2) Die setHours()
Methode nur nimmt ganzzahlige Werte für den Parameter "Stunden" an. . . von MDN:
hoursValue
ganze Zahl zwischen 0 und 23, um die Stunden repräsentiert.
Sie können in einer halben Stunde zwei Arten hinzufügen: durch einen "Minuten" Parameter in der setHours()
Anruf bereitstellt:
appointmentEndTime.setHours(appointmentEndTime.getHours(), 30);
. . . oder indem Sie einfach mit der setMinutes()
Methode:
appointmentEndTime.setMinutes(appointmentEndTime.getMinutes() + 30);
3) Wenn Sie den neuen Datumswert mit erstellen:
var appointmentEndTime = new date(obj.appointmentEndTime);
. . . Sie arbeiten mit einem brandneuen Date
-Objekt, so dass Sie entweder den neuen Zeitwert in die ursprüngliche obj.appointmentEndTime
-Eigenschaft kopieren müssen, oder Sie müssen den Wert aus der neuen appointmentEndTime
-Variable erstellen und diese stattdessen an die timepicker()
-Methode übergeben von obj.appointmentEndTime
.
UPDATE
Okay, also schaute ich auf Ihre Fiddle und die Frage, die Sie jetzt haben, ist, dass Sie nicht ein Datum mit nur einem Zeitwert erstellen:
var appoinementEndTime = new Date('10:00:00');
Wieder sucht nach MDN (eine großen Ressource, übrigens), die gültigen Eingaben für den Date
Konstruktor sind:
new Date(); // The exact moment at the creation of the Date
new Date(value); // In milliseconds, since 1 January 1970 00:00:00 UTC
new Date(dateString); // A string value representing a date (see link for valid formats)
new Date(year, month[, date[, hours[, minutes[, seconds[, milliseconds]]]]]);
So Ihre beste Möglichkeit wäre, um ein Datum zu wählen (das aktuelle Datum wäre am einfachsten) und überschreibt dann die Zeitwert zu diesem Zeitpunkt, um den Wert zu erhalten, die Sie wollen:
var endTimeArray = obj.appoinementEndTime.split(":");
var appoinementEndTime = new Date();
appoinementEndTime.setHours(endTimeArray[0], // the hours value
endTimeArray[1] + 30, // the minutes value
endTimeArray[2], // the seconds value
0); // the milliseconds value
Verwenden Sie das (und Ihren Wert von "10: 00: 00 ), the time value of the date should be
10:30:00 (which you can create using the
getHours() ,
getMinutes() , and
getSeconds methods on
ErnennungEndTime").
.5 sollte 5 sein (ohne den Punkt) – ymz
@ymz. . . definitiv nicht . . . das würde 5 Stunden hinzufügen. – talemyn
dann warum nicht mit 30 mit setMinutes() und getMinutes()? – ymz