将时间添加到 hh:mm:ss javascript 的字符串
Add time to string of hh:mm:ss javasctipt
我的网络服务返回了以下字符串:'10:00:00'。
通过以下方式在我的时间选择器中成功禁用它:
$('#appointmentTimeTextbox').timepicker('option',
'disableTimeRanges',
[[obj.appointmentTime, obj.appointmentEndTime]]);
我想要的是将 30 分钟(时间选择器中的一个选项)添加到 obj.appointmentEndTime
。我试过:
var appointmentEndTime = new date(obj.appointmentEndTime);
appointmentEndTime.setHours(appointmentEndTime.getHours() + .5);
无果。
您遇到了一些问题:
1) 这可能只是题中的错字,但是日期构造函数必须大写:new Date(...
2) setHours()
方法只接受 "hours" 参数的整数值。 . .来自 MDN:
hoursValue
integer between 0 and 23, representing the hour.
您可以通过两种方式添加半小时:通过在 setHours()
调用中提供 "minutes" 参数:
appointmentEndTime.setHours(appointmentEndTime.getHours(), 30);
。 . .或者简单地使用 setMinutes()
方法:
appointmentEndTime.setMinutes(appointmentEndTime.getMinutes() + 30);
3) 当您创建新的日期值时:
var appointmentEndTime = new date(obj.appointmentEndTime);
。 . .您正在使用一个全新的 Date
对象,因此您需要将新时间值复制回原始 obj.appointmentEndTime
属性,或者您需要从新 appointmentEndTime
变量,并将其传递给 timepicker()
方法而不是 obj.appointmentEndTime
.
更新
好的,所以我查看了您的 Fiddle,您现在遇到的问题是您无法创建仅包含时间值的日期:
var appoinementEndTime = new Date('10:00:00');
再次查看 MDN(顺便说一下,一个 很棒的 资源),Date
构造函数的有效输入是:
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]]]]]);
所以你最好的选择是选择一个日期(当前日期最简单),然后覆盖该日期的时间值,以获得你想要的值:
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
使用它(以及你的值 '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
appoinementEndTime`).
我的网络服务返回了以下字符串:'10:00:00'。
通过以下方式在我的时间选择器中成功禁用它:
$('#appointmentTimeTextbox').timepicker('option',
'disableTimeRanges',
[[obj.appointmentTime, obj.appointmentEndTime]]);
我想要的是将 30 分钟(时间选择器中的一个选项)添加到 obj.appointmentEndTime
。我试过:
var appointmentEndTime = new date(obj.appointmentEndTime);
appointmentEndTime.setHours(appointmentEndTime.getHours() + .5);
无果。
您遇到了一些问题:
1) 这可能只是题中的错字,但是日期构造函数必须大写:new Date(...
2) setHours()
方法只接受 "hours" 参数的整数值。 . .来自 MDN:
hoursValue
integer between 0 and 23, representing the hour.
您可以通过两种方式添加半小时:通过在 setHours()
调用中提供 "minutes" 参数:
appointmentEndTime.setHours(appointmentEndTime.getHours(), 30);
。 . .或者简单地使用 setMinutes()
方法:
appointmentEndTime.setMinutes(appointmentEndTime.getMinutes() + 30);
3) 当您创建新的日期值时:
var appointmentEndTime = new date(obj.appointmentEndTime);
。 . .您正在使用一个全新的 Date
对象,因此您需要将新时间值复制回原始 obj.appointmentEndTime
属性,或者您需要从新 appointmentEndTime
变量,并将其传递给 timepicker()
方法而不是 obj.appointmentEndTime
.
更新
好的,所以我查看了您的 Fiddle,您现在遇到的问题是您无法创建仅包含时间值的日期:
var appoinementEndTime = new Date('10:00:00');
再次查看 MDN(顺便说一下,一个 很棒的 资源),Date
构造函数的有效输入是:
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]]]]]);
所以你最好的选择是选择一个日期(当前日期最简单),然后覆盖该日期的时间值,以获得你想要的值:
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
使用它(以及你的值 '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
appoinementEndTime`).