4 回答

TA貢獻1803條經(jīng)驗 獲得超6個贊
假設(shè)數(shù)組總是有序的,首先是今天的時間,然后是午夜后的時間:
const orari = [
'10:00:00',
'11:00:00',
'12:00:00',
'15:00:00',
'16:00:00',
'16:30:00',
'00:00:00',
'01:00:00',
'02:00:00',
'02:30:00',
]
const currentTime = new Date().toString().match(/\d{2}:\d{2}:\d{2}/)[0]
const cutoffIndex = orari.findIndex((hour, idx) =>
hour.localeCompare(currentTime) > 0
|| (idx && hour.localeCompare(orari[idx - 1]) < 0))
// second condition required in case array contains
// _only_ times before now on same day + times after midnight
const filtered = orari.slice(cutoffIndex)
console.log(`Times after ${currentTime} -`, filtered)

TA貢獻1829條經(jīng)驗 獲得超7個贊
let curDate = new Date()
let curHour = 16//curDate.getHours()
let curMin = 30//curDate.getMinutes()
const hours=["10:00:00","11:00:00","12:00:00","16:00:00","16:30:00","00:00:00","01:00:00","02:00:00","02:30:00"];
let sliceIdx = null
hours.forEach((time, idx) => {
let hour = parseInt(time.split(':')[0])
let min = parseInt(time.split(':')[1])
if (hour == curHour && min >= curMin || hour > curHour) {
sliceIdx = sliceIdx === null ? idx : sliceIdx
}
})
let newHours = hours.slice(sliceIdx + 1)
console.log(newHours)

TA貢獻1934條經(jīng)驗 獲得超2個贊
let array = ['10:00:00', '11:00:00', '12:00:00', '16:00:00', '16:30:00', '00:00:00', '01:00:00', '02:00:00', '02:30:00' ];
let newArray = a.slice(a.indexOf('16:00:00') + 1, a.length);
如果您需要檢查數(shù)組中是否存在時間,您可以將 indexOf 的值保存在另一個變量中(如果不存在則返回 -1);

TA貢獻1853條經(jīng)驗 獲得超6個贊
因為沒有辦法用我當前的時間數(shù)組來實現(xiàn)我正在尋找的東西,而且正如@lionel-rowe 提到的,我無法區(qū)分“今天早上 5 點”和“明天午夜后 5 點”,我不得不更改我的日期在我的數(shù)據(jù)庫中從時間輸入字符串,這樣我就可以通過這種方式在一個數(shù)組中添加第二天的所有夜間時間和同一天的早上時間:
如果時間是5AM我在 DB 中設(shè)置它,'05:00:00'在 JS 中我將它設(shè)置為它的日期,而用戶想在午夜后插入 5AM,我'29:00:00'在 JS 中設(shè)置小時我只是檢查小時是否是>= 24那么如果條件是true我將小時設(shè)置為day + 1.
所以代碼看起來類似于:
const ore = ["01:00:00", "08:30:00", "12:00:00", "12:30:00", "13:00:00", "13:30:00", "14:00:00", "14:30:00", "24:00:00", "25:00:00", "26:00:00"];
const giorno = new Date();
const final = ore.map((o) => {
const hour = o.split(':')[0];
const min = o.split(':')[1];
const date = new Date(giorno);
if (Number(hour) >= 24) {
date.setDate(date.getDate() + 1);
date.setHours(Number(hour) - 24, Number(min), 0, 0);
} else {
date.setHours(Number(hour), Number(min), 0, 0);
}
return date;
})
.sort((a, b) => a.valueOf() - b.valueOf());
console.log(final.toLocaleString());
添加回答
舉報