Mir*_*rco 2 javascript html5 date
我对JavaScript很陌生,但我遇到了一个问题.我有一个HTMl5-Page,有2个类型的输入元素time.我希望两次得到区别,所以11:15和12:00会给我0:45.
我认为HTML非常简单:
<ul>
<li>
<label>Anfang: </label>
</li>
<li>
<input type="time" id="begin" required="true">
</li>
</ul>
<ul>
<li>
<label>Ende: </label>
</li>
<li>
<input type="time" id="end" required="true"></li>
</ul>
Run Code Online (Sandbox Code Playgroud)
我猜这里没什么特别的.在我的JavaScript中,我将一个监听器附加到一个按钮,该按钮获取这两个字段的值并将其传递给以下函数以创建日期对象:
function timeToDate(input) {
var hours = input.substring(0, 2);
var min = input.substring(3, 5);
var date = new Date();
date.setHours(hours);
date.setMinutes(min);
return date;
}
Run Code Online (Sandbox Code Playgroud)
为了得到差异,我做:
var beginDate = timeToDate(begin);
var endDate = timeToDate(end);
var diff = endDate.getTime() - beginDate.getTime();
var b = new Date();
b.setTime(diff);
console.log(b.getHours());
Run Code Online (Sandbox Code Playgroud)
所以,但是11:00(beginDate)和12:00(endDate)的控制台输出是2,但它应该是1,或者我不知道这里的线索?
setTime()需要几毫秒UTC.
getHours()另一方面,打印当地时区的小时数.
您看到的"一小时太多",当您打印时getHours(),您的时间偏离UTC.
你可以使用所需的小时getUTCHours().
我假设您仅使用此算法来计算hours:minutes小的正日期差异的表示.那很好.只是不要试图将其应用于更大的持续时间计算.
| 归档时间: |
|
| 查看次数: |
919 次 |
| 最近记录: |