async function findValidImageUrl(baseTime) {
const endTime = new Date(baseTime.getTime() - 70 * 60000);
let currentTime = new Date(baseTime);
while (currentTime >= endTime) {
// URLを動的に生成
let formattedTime = formatDateForUrl(currentTime);
let url = http://example.com/${formattedTime}/image1.jpg;
try {
const result = await customFetch(url);
if (result.ok && result.status === 200) {
console.log('Found valid URL:', result.url);
return result.url;
}
} catch (error) {
console.error('Failed to fetch:', url, error);
}
currentTime = new Date(currentTime.getTime() - 5 * 60000);
}
console.log('No valid URL found within the time range.');
return null;
}
function formatDateForUrl(date) {
return date.toISOString().replace(/[:-]/g, '').slice(0, 12);
}
// 使用例
const observationDateTime = new Date(); // 現在の日時を観測日時とする
findValidImageUrl(observationDateTime);
async function customFetch(url) { try { const response = await fetch(url); return { status: response.status, url: response.url, ok: response.ok }; } catch (error) { console.error('Error fetching URL:', url, error); throw error; } }
async function findValidImageUrl(baseTime) { const endTime = new Date(baseTime.getTime() - 70 * 60000); let currentTime = new Date(baseTime);
while (currentTime >= endTime) { // URLを動的に生成 let formattedTime = formatDateForUrl(currentTime); let url =
http://example.com/${formattedTime}/image1.jpg
;}
console.log('No valid URL found within the time range.'); return null; }
function formatDateForUrl(date) { return date.toISOString().replace(/[:-]/g, '').slice(0, 12); }
// 使用例 const observationDateTime = new Date(); // 現在の日時を観測日時とする findValidImageUrl(observationDateTime);