在javasrcript中使用时间对象更新日期对象中的日期

时间:2018-11-05 05:46:50

标签: javascript date time

我正在尝试使用时间对象更新日期对象

从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)

**有没有办法做到这一点。基本上,我需要替换日期对象**中的时间。

4 个答案:

答案 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)