Обновление даты в объекте даты с объектом времени в javasrcript - PullRequest
0 голосов
/ 05 ноября 2018

Я пытаюсь обновить объект даты с помощью объекта времени

С new Date() в JavaScript Я получаю объект даты. Например Tue Nov 06 2018 00:00:00 GMT+0530 (India Standard Time)

Из типа ввода = время я получаю объект времени. Например Thu Jan 01 1970 16:52:00 GMT+0530 (India Standard Time)

Теперь мне нужно присоединиться к этим двум, как следует

Tue Nov 06 2018 16:52:00 GMT+0530 (India Standard Time)

** Есть ли способ сделать это. В основном мне нужно заменить объект даты и времени **

Ответы [ 4 ]

0 голосов
/ 05 ноября 2018

var date = new Date()


var time = new Date(0); time.setHours(16,52);

date.setHours( time.getHours(), time.getMinutes(), time.getSeconds() );
console.log(date)
0 голосов
/ 05 ноября 2018

Вы можете легко сделать это с помощью просто , используя setHours() и setMinutes() методы.

См. Пример ниже,

<!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);

и гарантированно поддерживаются в большинстве основных браузеров ,

Chrome в Windows XP, IE 8, 9 и 10 в Windows 7, IE 11 в Windows 10, последняя версия Firefox для Linux и последняя версия Safari для OSX 10.8 и 10.11.

Надеюсь, эта помощь,

Приветствие.

0 голосов
/ 05 ноября 2018

Вот как мы это делаем; -)

Метод .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);
0 голосов
/ 05 ноября 2018

Вы можете установить время с помощью метода setTime () для объекта date. Но 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);

Кстати, тип ввода даты не широко поддерживается во всех браузерах, поэтому вы можете использовать некоторые библиотеки DatePicker.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...