我正在尝试使用时间对象更新日期对象
从JavaScript中的<template>
<div class="page" data-page="test">
<div class="page-content">
<div class="block-title">TEST</div>
<div class="list">
<ul>
{{#each sub_cat}}
<li><a href="{{url}}" class="item-content item-link" data-idcat="{{idcat}}" data-idtitre=" {{idsubcat}}"><div class="item-inner"><div class="item-title">{{title}}</div></div></a></li>
{{/each}}
</ul>
</div>
</div>
<!-- End of PAGE CONTENT-->
</div>
<!-- End of PAGE RESIDENTIEL-->
</template>
<script>
return {}
</script>
,我正在获取日期对象。例如new Date()
从输入类型=时间,我正在获取时间对象。例如Tue Nov 06 2018 00:00:00 GMT+0530 (India Standard Time)
现在我需要按照以下说明加入这两个
Thu Jan 01 1970 16:52:00 GMT+0530 (India Standard Time)
**有没有办法做到这一点。基本上,我需要替换日期对象**中的时间。
答案 0 :(得分:1)
您可以在日期对象上使用setTime()方法设置时间。但是setTime()需要时间戳。因此,您可以拆分来自输入的时间值,并分别使用setHours()和setMinutes()。
//new date object
var d = new Date();
var time = input.value()//"11:41"
var hrs = time.split(':')[0]
var mins = time.split(':')[1]
//set time
d.setHours(hrs);
d.setMinutes(mins);
顺便说一句,在所有浏览器中,输入类型日期都不被广泛支持,因此您可能要使用一些日期选择器库。
答案 1 :(得分:1)
这就是我们的做法;-)
.setHours()方法需要1个必需参数,最多3个 可选参数(分钟,秒,毫秒)。
date.setHours( hours, minutes, seconds, milliseconds );
请注意,您需要确保计时对象是Date对象的实例,可以使用
instanceof operator
if ( time instanceof Date ) true;
请注意,如果您覆盖以下任何参数的范围,则javascript 将纠正该行为。
var date = new Date( '11-06-2018' );
// Tue Nov 06 2018 00:00:00 GMT+0100 (Central European Standard Time)
date.setHours( 25 );
// Wed Nov 07 2018 01:00:00 GMT+0100 (Central European Standard Time)
//setup
var date = new Date( '11-06-2018' );
// Tue Nov 06 2018 00:00:00 GMT+0100 (Central European Standard Time)
var time = new Date(0); time.setHours(10,14);
// Thu Jan 01 1970 10:14:00 GMT+0100 (Central European Standard Time)
date.setHours( time.getHours(), time.getMinutes(), time.getSeconds() );
// Tue Nov 06 2018 10:14:00 GMT+0100 (Central European Standard Time)
console.log(date);
答案 2 :(得分:0)
您可以使用setHours()
和setMinutes()
方法通过 just 轻松地做到这一点。
请参见下面的示例
<!DOCTYPE html>
<html>
<body>
<p>Click the button to display a date after changing the hours.</p>
<button onclick="myFunction()">Try it</button>
<p id="demo"></p>
<script>
function myFunction() {
var d = new Date();
d.setHours(16);
d.setMinutes(52);
document.getElementById("demo").innerHTML = d;
}
</script>
</body>
</html>
我同意@Jay Surya的说法,您必须使用一个库来进行日期操作,否则,在多浏览器环境中您会发现各种各样的问题。
我建议MomentJS进行与日期相关的操作。使用MomentJS,您可以这样做,
moment().hours(16);
moment().minutes(52);
,并保证在大多数major browsers,
中都受支持Windows XP上的Chrome,Windows 7上的IE 8、9和10,Windows 7上的IE 11 10,Linux上的最新Firefox和OSX 10.8和10.11上的最新Safari。
希望获得帮助,
干杯。
答案 3 :(得分:0)
var date = new Date()
var time = new Date(0); time.setHours(16,52);
date.setHours( time.getHours(), time.getMinutes(), time.getSeconds() );
console.log(date)