1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84
| import React from 'react'; import { useRef, useState } from 'react'; import { toDate, format as tzFormat } from 'date-fns-tz'; import { add, format, addWeeks, sub, differenceInHours } from 'date-fns'; import { ko } from 'date-fns/locale';
export default function DateFnsEx() { const [day, setDay] = useState(''); const birthDayRef = useRef(null); const handleBirthDayChange = (e) => { setDay(format(new Date(e.target.value), 'EEEE', { locale: ko })); };
const dayFnsDate = new Date(); const newdayFnsDate = add(dayFnsDate, { weeks: 1 }); const clonedayFnsDate = addWeeks(newdayFnsDate, 1); return ( <div> <h1>date-fns</h1> <div> {format(dayFnsDate, 'yyyy-MM-dd')} <br /> {format(newdayFnsDate, 'yyyy-MM-dd')} <br /> {format(clonedayFnsDate, 'yyyy-MM-dd')} <br /> <div>Leap year (korea)</div> <br /> </div> <h2>Time Zone</h2>
<br /> <div> 2018년 3월 10일 13시에 하루 더하기 <br /> {format( add(new Date('2018-03-10 13:00'), { days: 1 }), 'yyyy-MM-dd HH:mm:ssXXX', { timeZone: 'America/New_York' } )} </div> <div> 2018년 3월 10일 13시에 24시간 더하기 <br /> {tzFormat( add( toDate(new Date('2018-03-10 13:00'), { timeZone: 'America/New_York', }), { hours: 24 } ), 'yyyy-MM-dd HH:mm:ssXXX', { timeZone: 'America/New_York' } )} </div> <br /> <br /> <div> 2017년 1월 1일에 1년 빼기 <br /> {format(sub(new Date('2017-01-01'), { years: 1 }), 'yyyy-MM-dd')} </div> <br /> <div> 2017년 1월 1일에 365일 빼기 <br /> {format(sub(new Date('2017-01-01'), { days: 365 }), 'yyyy-MM-dd')} </div> <div> 한국어로 표기</div> <div>{format(new Date('07-17-2021'), 'yyyy년 M월 d일')}</div> <br /> <div> <input type='date' ref={birthDayRef} onChange={handleBirthDayChange} /> <div>무슨 요일 이었을까?</div> <div>{day}</div> </div> <div>두 날짜 비교</div> <div>2021-07-17 03:00 와 2021-07-18 02:00는 몇시간 차이인가?</div> <div> {differenceInHours( new Date('2021-07-17 03:00'), new Date('2021-07-18 02:00') )} 시간 </div> </div> ); }
|