etc./StackOverFlow

JavaScript에서 현재 날짜를 어떻게 얻습니까?

청렴결백한 만능 재주꾼 2021. 11. 10. 07:35
반응형

질문자 :Suresh


JavaScript에서 현재 날짜를 어떻게 얻습니까?



new Date() 를 사용하여 현재 날짜와 시간을 포함 Date 객체를 생성합니다.

 var today = new Date(); var dd = String(today.getDate()).padStart(2, '0'); var mm = String(today.getMonth() + 1).padStart(2, '0'); //January is 0! var yyyy = today.getFullYear(); today = mm + '/' + dd + '/' + yyyy; document.write(today);

이것은 mm/dd/yyyy 형식으로 오늘 날짜를 제공합니다.

오늘만 바꾸면 today = mm +'/'+ dd +'/'+ yyyy; 원하는 형식으로.


Samuel Meddows

 var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/'); document.write(utc);

Firefox 및 Safari는 대시가 있는 날짜를 인식하지 못 new Date(utc) 와 같은 utc 변수를 재사용하려는 경우 replace 옵션을 사용하십시오.


Varun Natraaj

가능한 한 가장 짧습니다.

"2018-08-03"과 같은 형식을 얻으려면:

 let today = new Date().toISOString().slice(0, 10) console.log(today)

"8/3/2018"과 같은 형식을 얻으려면:

 let today = new Date().toLocaleDateString() console.log(today)

또한 로케일 을 인수로 전달할 수 있습니다 toLocaleDateString("sr") 등).


Damjan Pavlica

업데이트되었습니다! , 아래로 스크롤

최종 사용자에게 단순하고 예쁜 것을 원한다면... Also, fixed a small suffix issue in the first version below. Now properly returns suffix.

 var objToday = new Date(), weekday = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday'), dayOfWeek = weekday[objToday.getDay()], domEnder = function() { var a = objToday; if (/1/.test(parseInt((a + "").charAt(0)))) return "th"; a = parseInt((a + "").charAt(1)); return 1 == a ? "st" : 2 == a ? "nd" : 3 == a ? "rd" : "th" }(), dayOfMonth = today + ( objToday.getDate() < 10) ? '0' + objToday.getDate() + domEnder : objToday.getDate() + domEnder, months = new Array('January', 'February', 'March', 'April', 'May', 'June', 'July', 'August', 'September', 'October', 'November', 'December'), curMonth = months[objToday.getMonth()], curYear = objToday.getFullYear(), curHour = objToday.getHours() > 12 ? objToday.getHours() - 12 : (objToday.getHours() < 10 ? "0" + objToday.getHours() : objToday.getHours()), curMinute = objToday.getMinutes() < 10 ? "0" + objToday.getMinutes() : objToday.getMinutes(), curSeconds = objToday.getSeconds() < 10 ? "0" + objToday.getSeconds() : objToday.getSeconds(), curMeridiem = objToday.getHours() > 12 ? "PM" : "AM"; var today = curHour + ":" + curMinute + "." + curSeconds + curMeridiem + " " + dayOfWeek + " " + dayOfMonth + " of " + curMonth + ", " + curYear; document.getElementsByTagName('h1')[0].textContent = today;
 <h1></h1>

UBBER 업데이트 많은 시간을 미루고 마침내 GitHubbed를 만들고 이것을 내가 사용하고 있는 최종 솔루션으로 업데이트했습니다. 그것은 심지어 그것을 더 달콤하게 만들기 위해 마지막 순간에 편집했습니다! 이전 jsFiddle을 찾고 있다면 this 를 참조하십시오 .

이 업데이트는 위의 원래 답변만큼 작지는 않지만 여전히 상대적으로 작은 2가지 맛으로 제공됩니다. 매우 작은 것을 원하면 함께 가십시오.
또한 참고: 이것은 여전히 moment.js보다 덜 부풀려 있습니다. moment.js도 좋지만, 세속적인 방법이 너무 많아서 언어처럼 배우는 순간이 필요합니다. 여기에서 광산은 PHP와 동일한 공통 형식을 사용합니다 : date .

빠른 링크

Flavor 1 new Date().format(String) My Personal Fav. 나는 금기를 알고 있지만 날짜 개체에서 잘 작동합니다. 날짜 개체에 대해 가질 수 있는 다른 모드에 대해 알아두십시오.

 // use as simple as new Date().format('mdY h:i:s'); // 07-06-2016 06:38:34

Flavor 2 dateFormat(Date, String) 보다 전통적인 올인원 방식. 이전의 모든 기능을 가지고 있지만 Date 매개변수가 있는 메서드를 통해 호출됩니다.

 // use as simple as dateFormat(new Date(), 'mdY h:i:s'); // 07-06-2016 06:38:34

BONUS Flavor(jQuery 필요) $.date(Date, String) format 옵션 이상의 것이 포함되어 있습니다. 기본 Date 개체를 확장하고 addDays 와 같은 메서드를 포함합니다. 자세한 내용은 Git을 참조하십시오.

이 모드에서 형식 문자는 PHP: date 에서 영감을 받았습니다. 전체 목록을 보려면 내 README를 참조하십시오.

이 모드에는 훨씬 더 긴 미리 만들어진 형식 목록이 있습니다. 미리 만들어진 형식을 사용하려면 키 이름을 입력하기만 하면 됩니다. dateFormat(new Date(), 'pretty-a');

  • '화합물'
    • 'commonLogFormat' == 'd/M/Y:G:i:s'
    • 'exif' == 'Y:m:d G:i:s'
    • 'isoYearWeek' == 'Y\\WW'
    • 'isoYearWeek2' == 'Y-\\WW'
    • 'isoYearWeekDay' == 'Y\\WWj'
    • 'isoYearWeekDay2' == 'Y-\\WW-j'
    • 'mySQL' == 'Ymd h:i:s'
    • 'postgreSQL' == 'Y.z'
    • 'postgreSQL2' == 'Yz'
    • '비누' == 'Ymd\\TH:i:s.u'
    • 'soap2' == 'Ymd\\TH:i:s.uP'
    • 'unixTimestamp' == '@U'
    • 'xmlrpc' == 'Ymd\\TG:i:s'
    • 'xmlrpcCompact' == 'Ymd\\tGis'
    • 'wddx' == 'Ynj\\TG:i:s'
  • '상수'
    • '미국인' == 'F j Y'
    • 'AMERICACANSHORT' == 'm/d/Y'
    • 'AMERICANSHORTWTIME' == 'm/d/Y h:i:sA'
    • '아톰' == 'Ymd\\TH:i:sP'
    • '쿠키' == 'l dMY H:i:s T'
    • '유럽' == 'j F Y'
    • '유럽 단축' == 'dmY'
    • 'EUROPEANSHORTWTIME' == 'dmY H:i:s'
    • 'ISO8601' == 'Ymd\\TH:i:sO'
    • '합법' == 'j F Y'
    • 'RFC822' == 'D d M y H:i:s O'
    • 'RFC850' == 'l dMy H:i:s T'
    • 'RFC1036' == 'D d M y H:i:s O'
    • 'RFC1123' == 'D d MYH:i:s O'
    • 'RFC2822' == 'D d MYH:i:s O'
    • 'RFC3339' == 'Ymd\\TH:i:sP'
    • 'RSS' == 'D d MYH:i:s O'
    • 'W3C' == 'Ymd\\TH:i:sP'
  • '예쁜'
    • '예쁜-a' == 'g:i.sA l jS \\o\\f F Y'
    • '예쁜-b' == 'g:iA l jS \\o\\f F Y'
    • '예쁜-c' == 'n/d/Y g:iA'
    • '예쁜-d' == 'n/d/Y'
    • '예쁜-e' == 'F jS - g:ia'
    • '예쁜 f' == 'g:iA'

알 수 있듯이 이중 \ 를 사용하여 문자를 이스케이프할 수 있습니다.



SpYk3HH

시간 정보 없이 날짜만 원하면 다음을 사용하십시오.

 var today = new Date(); today.setHours(0, 0, 0, 0); document.write(today);


Marshal

이 시도:

 var currentDate = new Date() var day = currentDate.getDate() var month = currentDate.getMonth() + 1 var year = currentDate.getFullYear() document.write("<b>" + day + "/" + month + "/" + year + "</b>")

결과는 다음과 같을 것입니다

 15/2/2012

Jimmy M

날짜 형식을 훨씬 더 세밀하게 제어하려면 momentjs를 확인하는 것이 좋습니다. 훌륭한 라이브러리 - 단 5KB. http://momentjs.com/


benjamin.keen

moment.js를 사용할 수 있습니다: http://momentjs.com/

 var m = moment().format("DD/MM/YYYY"); document.write(m);
 <script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.14.1/moment.min.js"></script>


Morad

 var d = (new Date()).toString().split(' ').splice(1,3).join(' '); document.write(d)

단계로 나누려면:

  1. (new Date()).toString() 은 "Fri Jun 28 2013 15:30:18 GMT-0700 (PDT)"를 제공합니다.

  2. (new Date()).toString().split(' ') 위의 문자열을 각 공백으로 나누고 다음과 같은 배열을 반환합니다. ["Fri", "Jun", "28", "2013", "15: 31:14", "GMT-0700", "(PDT)"]

  3. (new Date()).toString().split(' ').splice(1,3).join(' ') 위의 배열에서 두 번째, 세 번째 및 네 번째 값을 가져와 공백으로 결합하고 a를 반환합니다. 문자열 "2013년 6월 28일"


Rishabh Marya

var date = new Date().toLocaleDateString("en-US");

또한 두 개의 매개 변수를 사용하여 toLocaleDateString 메서드를 호출할 수 있습니다.

 var date = new Date().toLocaleDateString("en-US", { "year": "numeric", "month": "numeric" });

MSDN 에 대한 기사 . 이 방법에 대한 자세한 내용은 MDN .


Dunaevsky Maxim

이것은 매번 작동합니다.

 var now = new Date(); var day = ("0" + now.getDate()).slice(-2); var month = ("0" + (now.getMonth() + 1)).slice(-2); var today = now.getFullYear() + "-" + (month) + "-" + (day); console.log(today);


roshan

YYYY-MM-DD 형식에 만족한다면 이 방법도 작동합니다.

new Date().toISOString().split('T')[0]

2018-03-10


Aung Htet

더 깨끗하고 단순한 버전:

 new Date().toLocaleString();

결과 사용자의 로케일 에 따라 다릅니다.

2017년 2월 27일 오전 9시 15분 41초


Oded Breiner

다른 답변의 대부분은 날짜에 시간을 제공하는 것입니다.
날짜만 필요한 경우.

 new Date().toISOString().split("T")[0]

산출

 [ '2021-02-08', '06:07:44.629Z' ]

/ 형식으로 replaceAll 사용하십시오.

 new Date().toISOString().split("T")[0].replaceAll("-", "/")

momentjs 를 사용하는 것이 가장 좋습니다.


Shubham Chadokar

Date 객체를 확장한 Date.js 라이브러리를 사용할 수 있으므로 .today() 메소드를 가질 수 있습니다.


eomeroff

다음과 같이 현재 날짜 호출을 정적 메서드로 가져올 수 있습니다.

 var now = Date.now()

참조:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now


Jose Rojas

Varun의 답변 은 TimezoneOffset을 고려하지 않습니다. 다음은 다음을 수행하는 버전입니다.

 var d = new Date() new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11

TimezoneOffset 은 분이고 Date 생성자는 밀리초가 걸리므로 60000 곱합니다.


user1338062

가장 짧은 대답은 다음과 같습니다. new Date().toJSON().slice(0,10)


Blair Anderson

toISOString() 은 현지 시간이 아닌 현재 UTC 시간만 반환합니다. yyyy-MM-dd 형식으로 날짜를 가져오려면 '.toString()' 함수를 사용하여 날짜를 만들어야 합니다.

 document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);

날짜와 시간을 yyyy-MM-ddTHH:mm:ss 형식으로 가져오려면

 document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0]);

날짜와 시간을 yyyy-MM-dd HH:mm:ss 형식으로 가져오려면

 document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));


jafarbtech

new Date().toDateString();

결과:

"2016년 2월 3일 수"


Isayevskiy_Sergey

new Date().toISOString().slice(0,10);

너무 작동 할 것입니다


Toucouleur

DD/MM/YYYY 형식을 원할 경우 접두사가 누락된 0은 없지만 이 간단한 솔루션을 생각해 냈습니다.

 var d = new Date(); document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );


Phil Ricketts

Date.prototype.toLocaleDateString() 내장된 JS 사용 MDN 문서: https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

 const options = { month: '2-digit', day: '2-digit', year: 'numeric', }; console.log(new Date().toLocaleDateString('en-US', options)); // mm/dd/yyyy


Constantin

최신 편집: 8/23/19 date-fns 라이브러리는 moment.js 와 매우 유사하게 작동하지만 설치 공간이 훨씬 더 작습니다. 이를 통해 프로젝트에 포함할 기능을 선택하여 오늘 날짜 형식을 지정하기 위해 전체 라이브러리를 컴파일할 필요가 없습니다. 최소한의 타사 라이브러리가 프로젝트에 대한 옵션이 아닌 경우 Samuel Meddows가 승인한 솔루션을 승인합니다.

소수의 사람들에게 도움이 되었기 때문에 아래에 기록을 보존합니다. 그러나 기록을 위해 이 게시물의 대부분의 솔루션과 같이 꽤 해킹되고 경고 없이 깨질 수 있습니다.

편집 2/7/2017 한 줄 JS 솔루션:

헐 박사

var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

edge, ff 최신 및 크롬 반환 todaysDate = "2/7/2017"
IE10+에서 "작동"*

설명

IE10과 IE Edge가 약간 다르게 작동한다는 것을 알았습니다. 알아보세요. new Date(Date.now()).toLocaleString() 을 입력으로 사용하여

IE10은 다음을 반환합니다.

 "Tuesday, February 07, 2017 2:58:25 PM"

나는 큰 긴 함수와 FTFY를 작성할 수 있습니다. 그러나 당신은 정말로 이것을 위해 moment.js 를 사용해야 합니다. 내 스크립트는 이것을 정리하고 확장된 전통적인 미국 표기법을 > todaysDate = "March 06, 2017"

IE EDGE는 다음을 반환합니다.

 "‎2‎/‎7‎/‎2017‎ ‎2‎:‎59‎:‎27‎ ‎PM"

물론 그렇게 쉬울 수는 없었다. Edge의 날짜 문자열에는 보이는 각 문자열 사이에 보이지 않는 "•" 문자가 있습니다. 따라서 이제 첫 번째 문자가 숫자인지 확인할 뿐만 아니라 전체 날짜 범위의 단일 문자가 결국에는 점이나 슬래시가 되는 것으로 밝혀졌기 때문에 처음 3개 문자를 확인합니다. 따라서 일을 단순하게 유지하려면 처음 세 문자(미래의 속임수에 대비한 작은 버퍼 )를 .slice()한 다음 숫자를 확인하십시오. 이러한 보이지 않는 점이 코드에서 잠재적으로 지속될 수 있다는 점에 유의해야 합니다. 이 문자열을 보기에 인쇄하는 것보다 더 큰 계획이 있는 경우 자세히 알아볼 수 있습니다.

∴ 업데이트된 한 줄:

 var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];

읽기 싫다. 어때요:

 var dateString = new Date(Date.now()).toLocaleString(); var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];

원래 답변

당신을 위한 한 줄짜리가 있습니다:

 new Date(Date.now()).toLocaleString().split(', ')[0];

그리고 [1] 당신에게 하루 중 시간을 줄 것입니다.


Cam

노력하다

 `${Date()}`.slice(4,15) 

 console.log( `${Date()}`.slice(4,15) )

우리는 여기에서 표준 JS 기능인 템플릿 리터럴 , 문자열로 캐스트되는 Date 객체 및 슬라이스를 사용 합니다. 이것은 아마도 OP 요구 사항을 충족하는 가장 짧은 솔루션일 것입니다(시간 없음, 날짜만).


Kamil Kiełczewski

당신은 이것을 사용할 수 있습니다

 <script> function my_curr_date() { var currentDate = new Date() var day = currentDate.getDate(); var month = currentDate.getMonth() + 1; var year = currentDate.getFullYear(); var my_date = month+"-"+day+"-"+year; document.getElementById("dateField").value=my_date; } </script>

HTML은

 <body onload='return my_curr_date();'> <input type='text' name='dateField' id='dateField' value='' /> </body>

Roger

이를 해제하는 간단한 방법은(현재 시간대를 고려하면서 ISO yyyy-mm-dd 형식을 활용함) 다음과 같습니다.

 let d = new Date().toISOString().substring(0,19).replace("T"," ") // "2020-02-18 16:41:58"

일반적으로 이것은 다목적으로 호환되는 날짜 형식이며 필요한 경우 순수한 날짜 값으로 변환할 수 있습니다.

 Date.parse(d); // 1582044297000

Caiuby Freitas

jQuery를 사용하는 경우. 이 하나의 라이너를 사용해보십시오.

 $.datepicker.formatDate('dd/mm/yy', new Date());

날짜 형식 지정 규칙은 다음과 같습니다.

  • d - 날짜(앞에 0 없음)
  • dd - 날짜(2자리)
  • o - 일(앞에 0 없음)
  • oo - 요일(세 자리)
  • D - 짧은 요일 이름
  • DD - 긴 요일 이름
  • m - 연도(앞에 0 없음)
  • mm - 연도(2자리)
  • M - 짧은 월 이름
  • MM - 월 이름 길이
  • y - 연도(2자리)
  • yy - 연도(4자리)

다음은 jQuery datepicker에 대한 참조입니다.


Souvik

이것은 포맷 된 날짜를 얻는 것이 좋습니다.

 let date = new Date().toLocaleDateString("en", {year:"numeric", day:"2-digit", month:"2-digit"}); console.log(date);


Yugandhar Chaudhari

"현재 날짜"까지 "오늘"에 대해 생각하고 있다면 이 트릭이 효과가 있을 수 있습니다.

 > new Date(3600000*Math.floor(Date.now()/3600000)) 2020-05-07T07:00:00.000Z

이렇게 하면 시간이 0:00:00인 오늘 날짜 인스턴스를 얻을 수 있습니다.

작동 원리는 매우 간단합니다. 현재 타임스탬프를 가져 와서 밀리초로 표시된 1일 동안 나눕니다. 우리는 분수를 얻을 것입니다. Math.floor 를 사용하여 분수를 제거하므로 정수를 얻습니다. 이제 다시 하루를 곱하면(다시 - 밀리초 단위), 날짜 타임스탬프가 정확히 그날의 시작 시간과 함께 표시됩니다.

 > now = Date.now() 1588837459929 > daysInMs = now/3600000 441343.73886916664 > justDays = Math.floor(daysInMs) 441343 > today = justDays*3600000 1588834800000 > new Date(today) 2020-05-07T07:00:00.000Z

깨끗하고 간단합니다.


marverix

출처 : http:www.stackoverflow.com/questions/1531093/how-do-i-get-the-current-date-in-javascript

반응형