๊ด€๋ฆฌ ๋ฉ”๋‰ด

bom's happy life

[JS] toISOString() ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘๋‚ ์งœ ์„ ํƒ ์‹œ ๋งˆ์นจ๋‚ ์งœ 2์ฃผ๋’ค๋กœ ์ž๋™๊ณ„์‚ฐ๋˜๊ฒŒ ํ•˜๊ธฐ ๋ณธ๋ฌธ

Deveolpment Study๐Ÿ—‚๏ธ/Javascript

[JS] toISOString() ์‚ฌ์šฉํ•˜์—ฌ ์‹œ์ž‘๋‚ ์งœ ์„ ํƒ ์‹œ ๋งˆ์นจ๋‚ ์งœ 2์ฃผ๋’ค๋กœ ์ž๋™๊ณ„์‚ฐ๋˜๊ฒŒ ํ•˜๊ธฐ

bompeach 2024. 2. 5. 09:42

๋ฐœํ–‰์˜ˆ์ •์ผ์„ ์„ ํƒํ•˜๋ฉด ์ž…๊ธˆ์˜ˆ์ •์ผ์ด ์ž๋™์œผ๋กœ 2์ฃผ๋’ค๋กœ ์„ค์ •๋˜๋„๋ก JS๋กœ ๊ตฌํ˜„ํ•˜๋ ค๊ณ  ํ•œ๋‹ค.

<tr>
    <th>๋ฐœํ–‰์˜ˆ์ •์ผ</th>
    <td><input id="sales_pblDueDate" name="pblDueDate" type="date" class="ipt_date hasDatepicker" maxlength="10" max="9999-12-31"></td>
</tr>
<tr>
    <th>์ž…๊ธˆ์˜ˆ์ •์ผ</th>
    <td class="radio_alg">
        <input id="sales_rcpmnyDueDate" name="rcpmnyDueDate" type="date" class="ipt_date hasDatepicker" maxlength="10" max="9999-12-31">
    </td>
</tr>

 

// ๋ฐœํ–‰์˜ˆ์ •์ผ์˜ ๋‚ ์งœ๊ฐ€ ๋ณ€๊ฒฝ๋  ๋•Œ ์‹คํ–‰๋  ํ•จ์ˆ˜์ž…๋‹ˆ๋‹ค.
document.getElementById('sales_pblDueDate').addEventListener('change', function() {
    var pblDueDate = this.value; // ๋ฐœํ–‰์˜ˆ์ •์ผ์˜ ๊ฐ’์„ ๊ฐ€์ ธ์˜ต๋‹ˆ๋‹ค.
    var pblDueDateObj = new Date(pblDueDate); // ๋‚ ์งœ ๊ฐ์ฒด๋กœ ๋ณ€ํ™˜ํ•ฉ๋‹ˆ๋‹ค.

    // ์ž…๊ธˆ์˜ˆ์ •์ผ์„ ๋ฐœํ–‰์˜ˆ์ •์ผ๋กœ๋ถ€ํ„ฐ 2์ฃผ ๋’ค๋กœ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    pblDueDateObj.setDate(pblDueDateObj.getDate() + 14); // 14์ผ์„ ์ถ”๊ฐ€ํ•ฉ๋‹ˆ๋‹ค.

    // ์ž…๊ธˆ์˜ˆ์ •์ผ input ์š”์†Œ์— ๋‚ ์งœ๋ฅผ ์„ค์ •ํ•ฉ๋‹ˆ๋‹ค.
    // toISOString์„ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ ์งœ๋ฅผ YYYY-MM-DD ํ˜•์‹์˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•˜๊ณ , ๋‚ ์งœ ๋ถ€๋ถ„๋งŒ ์ž˜๋ผ๋‚ด์–ด ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    document.getElementById('sales_rcpmnyDueDate').value = pblDueDateObj.toISOString().split('T')[0];
});

 

addEventListener ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐœํ–‰์˜ˆ์ •์ผ ์ž…๋ ฅํ•„๋“œ์˜ ๋ณ€๊ฒฝ์‚ฌํ•ญ์„ ๊ฐ์ง€ํ•˜๊ณ , ํ•ด๋‹น ๋‚ ์ž์—์„œ 14์ผ์„ ๋”ํ•˜์—ฌ ์ž…๊ธˆ์˜ˆ์ •์ผ ํ•„๋“œ์— ์„ค์ •ํ•œ๋‹ค.

 

์ด๋•Œ , toISOString ๋ฉ”์„œ๋“œ์™€ splitํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋‚ ์งœ ํ˜•์‹์„ YYYY-MM-DD๋กœ ๋ณ€ํ™˜ํ•œ๋‹ค.

 

 

 

.

.

 

toISOString() ๋Š” Date ๋ฅผ ISOString(yyyy-mm-ddThh:mm:ss) ํ˜•์‹์˜ ๋ฌธ์ž์—ด๋กœ  ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค.

๊ทธ๋Ÿฐ๋ฐ ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ ์งœ๊ฐ€ ํ•˜๋ฃจ ์ „ ๋‚ ์งœ๊ฐ€ ์ฐํžŒ๋‹ค.

์ด์œ ๋Š” ์ด ํ•จ์ˆ˜๊ฐ€ ์šฐ๋ฆฌ๋‚˜๋ผ Time Zone ์ด ์•„๋‹ˆ๋ผ UTC ํƒ€์ž„์กด(zero offset) ์„ ์‚ฌ์šฉํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

 

๋Œ€ํ•œ๋ฏผ๊ตญ offset์„ ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•ด์ค€ ๋’ค ISOStringํ•จ์ˆ˜๋ฅผ ์‹คํ–‰์‹œํ‚ค๋Š” ๊ฒƒ

let offset = date.getTimezoneOffset() * 60000; //ms๋‹จ์œ„๋ผ 60000๊ณฑํ•ด์คŒ
let dateOffset = new Date(date.getTime() - offset);
  
console.log(dateOffset.toISOString());

 

 

 

 

์‚ฌ์šฉ์˜ˆ์‹œ : T ๊ธฐ์ค€์œผ๋กœ splitํ•˜๋ฉด ๋…„์›”์ผ๋กœ ์ž๋ฅผ ์ˆ˜ ์žˆ๋‹ค.

var d= new Date(); // ์ถœ๋ ฅํ˜•ํƒœ Tue Feb 07 2020 23:25:32 GMT+0900 (KST)

var ISOData = d.toISOString(); // ์ถœ๋ ฅํ˜•ํƒœ 2020-02-06T13:39:45.148Z

//var ISODate = ISOData.split("T",1); // ์ถœ๋ ฅํ˜•ํƒœ 2020-02-06

 

 

.

.

 

 

https://anywaydevlog.tistory.com/46

 

[javascript] toISOString() 1์ผ ์ „ ๋‚ ์งœ๊ฐ€ ๋œจ๋Š” ์ด์œ  ๋ฐ ํ•ด๊ฒฐ๋ฒ• (UTC ํƒ€์ž„์กด zero offset ์ด์Šˆ)

toISOString() ๋Š” Date ๋ฅผ ISOString(yyyy-mm-ddThh:mm:ss) ํ˜•์‹์˜ ๋ฌธ์ž์—ด๋กœ ๋ณ€ํ™˜ํ•ด์ฃผ๋Š” ํ•จ์ˆ˜์ด๋‹ค. ๊ทธ๋Ÿฐ๋ฐ ์ด ํ•จ์ˆ˜๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด ๋‚ ์งœ๊ฐ€ ํ•˜๋ฃจ ์ „ ๋‚ ์งœ๊ฐ€ ์ฐํžŒ๋‹ค. ์ด์œ ๋Š” ์ด ํ•จ์ˆ˜๊ฐ€ ์šฐ๋ฆฌ๋‚˜๋ผ Time Zone ์ด ์•„๋‹ˆ๋ผ UTC

anywaydevlog.tistory.com

๋ธ”๋กœ๊ทธ์ฐธ์กฐ.