J'ai un datepicker retournant une chaîne de date, et un timepicker ne retournant qu'une chaîne temporelle.
Comment dois-je les combiner en une seule date javascript?
Je pensais avoir trouvé une solution dans Date.js . Les exemples montrent une méthode at( )
-, mais je ne la trouve pas dans la bibliothèque ...
Vous pouvez configurer votre sélecteur de date pour renvoyer un format tel que YYYY-mm-dd
(ou tout autre format que Date.parse
prend en charge) et vous pouvez créer une chaîne dans timepicker comme:
var dateStringFromDP = '2013-05-16';
$('#timepicker').timepicker().on('changeTime.timepicker', function(e) {
var timeString = e.time.hour + ':' + e.time.minute + ':00';
var dateObj = new Date(datestringFromDP + ' ' + timeString);
});
javascript Date
object prend une chaîne en tant que paramètre constructeur
Combinez la date et l'heure pour chaîner comme ceci:
1997-07-16T19:20:15
Et Date.js peut l’analyser:
Date.parse('1997-07-16T19:20:15');
Vous pouvez également utiliser moment.js ou quelque chose de similaire, ou utiliser Vanilla JS.
Vous pouvez concaténer la date et l'heure, puis utiliser moment pour obtenir la variable datetime
const date = '2018-12-24';
const time = '23:59:59';
const dateTime = moment(`${date} ${time}`, 'YYYY-MM-DD HH:mm:ss').format();
Pour JavaScript simple:
combineDateAndTime = function(date, time) {
timeString = time.getHours() + ':' + time.getMinutes() + ':00';
var year = date.getFullYear();
var month = date.getMonth() + 1; // Jan is 0, dec is 11
var day = date.getDate();
var dateString = '' + year + '-' + month + '-' + day;
var combined = new Date(dateString + ' ' + timeString);
return combined;
};
L'exemple de David avec de légères modifications:
function CombineDateAndTime(date, time) {
var timeString = time.getHours() + ':' + time.getMinutes() + ':00';
var ampm = time.getHours() >= 12 ? 'PM' : 'AM';
var year = date.getFullYear();
var month = date.getMonth() + 1; // Jan is 0, dec is 11
var day = date.getDate();
var dateString = '' + year + '-' + month + '-' + day;
var datec = dateString + 'T' + timeString;
var combined = new Date(datec);
return combined;
};