我想將 12 小時格式時間轉換為字串,添加一些分鐘,然后轉換回字串。我的用戶將輸入一個時間作為字串示例 8:03 AM,這個時間需要轉換為一個整數,加上 9 分鐘,然后在未來 9 分鐘內轉換回相同的 12 小時格式。
我嘗試使用字串時間制作 Date obj,但是當我執行 Date 建構式時說我使用的日期無效。
new Date("8:03 AM")
之后我嘗試的是在時間上添加一個特定的日期
new Date("09/10/2022 8:03 AM")
這可以創建一個 Date obj,然后我會嘗試使用 .getTime() 獲取時間并將其傳遞給我的 intToHHMM 函式。
const intToHHMM = function (time) {
var sec_num = parseInt(time, 10); // don't forget the second param
var hours = Math.floor(sec_num / 3600);
var minutes = Math.floor((sec_num - (hours * 3600)) / 60);
var seconds = sec_num - (hours * 3600) - (minutes * 60);
if (hours < 10) {hours = "0" hours;}
if (minutes < 10) {minutes = "0" minutes;}
if (seconds < 10) {seconds = "0" seconds;}
return hours ':' minutes;
}
但我得到了一個奇怪的回報,絕對不是 hh:mm 格式。
有人可以伸出援助之手,我提前感謝您的幫助!
uj5u.com熱心網友回復:
檢查此功能,通過任何時間,它會增加minsToAdd分鐘start。看到它們時糾正任何錯誤。
function addMins(start, minsToAdd) {
let am_pm = start.split(" ")[1]
let [hr, min] = start.split(" ")[0].split(":")
let future = ""
min = parseInt(min) minsToAdd
if (min > 59) {
min = min - 60
hr = parseInt(hr) 1
am_pm = hr > 11 ?
am_pm === "PM" ? "AM" : "PM" :
am_pm === "AM" ? "PM" : "AM";
hr = hr > 12 ? hr - 12 : hr;
future = [
`${parseInt(hr)}`.length === 1 ? `0${hr}` : `${hr}`,
`${min}`.length === 1 ? `0${min}` : `${min}`,
am_pm
].join(":")
} else {
future = [`${hr}`.length === 1 ? `0${hr}` : `${hr}`,
`${min}`.length === 1 ? `0${min}` : `${min}`,
am_pm
].join(":")
}
return future
}
console.log(addMins("11:56 AM", 9)) //12:05:PM
console.log(addMins("11:56 PM", 9)) //12:05:AM
console.log(addMins("19:03 PM", 9)) //19:12:PM
uj5u.com熱心網友回復:
您不需要在這里涉及 Date 方法,只需一些魔術:
const add9 = HM12 => {
let [H, M, ampm] = HM12.split(/\W/);
let minutes = (H % 12 12 * (ampm === 'PM')) * 60 - -M;
minutes = 9; // magic
M = (minutes % 60 '').padStart(2, 0);
H = minutes / 60 % 24|0;
ampm = H < 12 ? 'AM' : 'PM';
H = (H % 12 '' || '12').padStart(2, 0);
return `${H}:${M} ${ampm}`;
}
console.log('08:03 AM --> ' add9('08:03 AM'))
console.log('11:53 PM --> ' add9('11:53 PM'))
console.log('11:53 AM --> ' add9('11:53 AM'))
uj5u.com熱心網友回復:
看看這個。修改為時間輸入。
calc.addEventListener("click", function() {
var time = document.getElementById("time").value
var date=new Date();
if(time){
date = new Date(date.toLocaleDateString('en-US') " " time);
}
var options = {
hour: 'numeric',
minute: 'numeric',
hour12: true
};
var timeString = date.toLocaleString('en-US', options);
console.log(timeString);
function addMinutes(date, minutes) {
return new Date(date.getTime() minutes*60000);
}
var timePlusNineMinString=addMinutes(date,9).toLocaleString('en-US', options);
console.log(timePlusNineMinString);
})
Time:<input id="time" type="time" name="task_time" />
<button id="calc">Get Time</button>
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/507686.html
標籤:javascript 约会时间 时间 日期时间转换
