アプリのユーザーは、予定の時間と期間を選択できます。時間に期間を追加して、終了時間を表示したいと思います。私はすべてをミリ秒単位でバックグラウンドで処理し、関数を使用して数時間でユーザーに変換し直します。この例では、コンソールが01:00を出力するため、何が間違っているのかわかりません。印刷する必要があると思います16:00
。
コードのハードコードされたウォーターダウンバージョンは次のとおりです。
var date = '2021-02-12';
var start_time = '15:00';//24hour format
var total_hours = '3600000';//total hours from hidden input in miliseconds//3600000 = 1hour
var miliseconds = new Date(date + ' ' + start_time).getMilliseconds();//convert datetime to mili
//add hours to start time to get end time
var end_time = parseInt(miliseconds) + parseInt(total_hours);
console.log(msToTime(end_time));
function msToTime(duration) {
var milliseconds = parseInt((duration % 1000) / 100),
seconds = Math.floor((duration / 1000) % 60),
minutes = Math.floor((duration / (1000 * 60)) % 60),
hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
hours = (hours < 10) ? "0" + hours : hours;
minutes = (minutes < 10) ? "0" + minutes : minutes;
seconds = (seconds < 10) ? "0" + seconds : seconds;
return hours + ":" + minutes ;
}
ローカルタイムゾーンの問題。これは16:00
あなたが探しているものを提供します。
var date = '2021-02-12';
var start_time = '15:00';//24hour format
var total_hours = '3600000';//total hours from hidden input in miliseconds//3600000 = 1hour
var miliseconds = Date.parse(date + 'T' + start_time + ':00.000Z');//convert datetime to mili
//add hours to start time to get end time
var end_time = parseInt(miliseconds) + parseInt(total_hours);
console.log(msToTime(end_time));
function msToTime(duration) {
var milliseconds = parseInt((duration % 1000) / 100),
seconds = Math.floor((duration / 1000) % 60),
minutes = Math.floor((duration / (1000 * 60)) % 60),
hours = Math.floor((duration / (1000 * 60 * 60)) % 24);
hours = (hours < 10) ? "0" + hours : hours;
minutes = (minutes < 10) ? "0" + minutes : minutes;
seconds = (seconds < 10) ? "0" + seconds : seconds;
return hours + ":" + minutes ;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加