const https = require('https') const http = require('http') const testFixedTimeParsing = async () => { console.log('šŸ” ęø¬č©¦äæ®ę­£å¾Œēš„ę™‚é–“č§£ęž') console.log('=' .repeat(50)) const userId = 'user-1759073326705-m06y3wacd' try { // ęŖ¢ęŸ„å‰µę„ęø¬č©¦ēµęžœ API console.log('\nšŸ“Š ęŖ¢ęŸ„å‰µę„ęø¬č©¦ēµęžœ API...') const response = await new Promise((resolve, reject) => { const req = http.get(`http://localhost:3000/api/test-results/creative?userId=${userId}`, (res) => { let data = '' res.on('data', chunk => data += chunk) res.on('end', () => resolve({ status: res.statusCode, data })) }) req.on('error', reject) }) if (response.status === 200) { const data = JSON.parse(response.data) if (data.success && data.data.length > 0) { // ęŒ‰å‰µå»ŗę™‚é–“ęŽ’åŗļ¼Œå–ęœ€ę–°ēš„ const sortedResults = data.data.sort((a, b) => new Date(b.created_at) - new Date(a.created_at)) const latestResult = sortedResults[0] console.log('\nšŸ“‹ ęœ€ę–°å‰µę„ęø¬č©¦ēµęžœ:') console.log(`completed_at: ${latestResult.completed_at}`) // ęø¬č©¦ę™‚é–“č§£ęž console.log('\nšŸ“Š ęø¬č©¦ę™‚é–“č§£ęž:') const parsedDate = new Date(latestResult.completed_at) const isValid = !isNaN(parsedDate.getTime()) console.log(`č§£ęžēµęžœ: ${parsedDate.toISOString()}`) console.log(`ę˜Æå¦ęœ‰ę•ˆ: ${isValid ? 'āœ…' : 'āŒ'}`) if (isValid) { const taiwanTime = parsedDate.toLocaleString("zh-TW", { timeZone: "Asia/Taipei" }) console.log(`å°ē£ę™‚é–“: ${taiwanTime}`) } // ęŖ¢ęŸ„ę‰€ęœ‰ēµęžœēš„ę™‚é–“ę ¼å¼ console.log('\nšŸ“Š ę‰€ęœ‰ēµęžœēš„ę™‚é–“ę ¼å¼:') data.data.forEach((result, index) => { const date = new Date(result.completed_at) const isValid = !isNaN(date.getTime()) console.log(`${index + 1}. ${result.completed_at} → ${isValid ? 'āœ…' : 'āŒ'}`) }) } } } catch (error) { console.error('āŒ 測試失敗:', error.message) } finally { console.log('\nāœ… äæ®ę­£å¾Œēš„ę™‚é–“č§£ęžęø¬č©¦å®Œęˆ') } } testFixedTimeParsing()