JavaScript로만 현재 시간을 얻는 방법


144

JavaScript로 현재 시간을 가져 와서 시간 선택기에서 사용하려면 어떻게해야합니까?

나는 시도 var x = Date()하고 얻었다 :

2012 년 5 월 15 일 화요일 05:45:40 GMT-0500

예를 들어 현재 시간 만 있으면됩니다 05:45

변수에 이것을 어떻게 할당 할 수 있습니까?


15
@swati 우리는 이것이 모든 프로그래밍 문제의 소스가되기를 원하기 때문입니다. 다른 사람이 더 나은 솔루션을 가지고있을 수 있으며이 방법으로 모두 한 지점에서 참조로 나열 될 수 있습니다.
Alfred

27
@swati-3 년 전에 해당 의견을 작성한 것으로 알고 있지만, 현재이 페이지는 "시간을 JavaScript로 가져 오기"에 대한 Google의 # 1 검색 결과입니다. 오늘의 질문은 내일의 검색 결과입니다.
David Deutsch

@DavidDeutsch 질문하기 페이지에서 굵게 표시된 제목과 같아야합니다. "오늘의 질문은 내일의 검색 결과입니다"
Vaulstein

답변:


220
var d = new Date("2011-04-20T09:30:51.01");
d.getHours(); // => 9
d.getMinutes(); // =>  30
d.getSeconds(); // => 51

또는

var d = new Date(); // for now
d.getHours(); // => 9
d.getMinutes(); // =>  30
d.getSeconds(); // => 51

1
var d = new Date("2011-04-20 09:30:51.01"); alert(d.getHours()); // => 9 출력NaN
Chinmay235

1
@ Chinmay235 T이제 추가 되어 올바른 범용 ISO입니다. BTW undefinedIE 에서만 볼 수 있습니다. 어쨌든 수정되었습니다.
Royi Namir

126

짧고 간단한

new Date().toLocaleTimeString(); // 11:18:48 AM
//---
new Date().toLocaleDateString(); // 11/16/2015
//---
new Date().toLocaleString(); // 11/16/2015, 11:18:48 PM

4 시간 후 (milisec 사용 : sec == 1000) :

new Date(new Date().getTime() + 4*60*60*1000).toLocaleTimeString(); // 3:18:48 PM or 15:18:48

2 일 전 :

new Date(new Date().getTime() - 2*24*60*60*1000).toLocaleDateString() // 11/14/2015

6
더하기 및 빼기 계산이 도움이됩니다!
Dov Miller

대신 1 분을 추가하려면 무엇으로 변경해야합니까?
lets0code

80

자바 스크립트를 사용하여 현재 시간을 효율적으로 가져오고 설정하십시오.

필요한 것을 정확히 수행 한 솔루션을 찾을 수 없습니다. 깨끗하고 작은 코드를 원했기 때문에 이것을 생각해 냈습니다.

(master.js에서 한 번 설정하고 필요한 경우 호출하십시오.)

순수한 자바 스크립트

function timeNow(i) {
  var d = new Date(),
    h = (d.getHours()<10?'0':'') + d.getHours(),
    m = (d.getMinutes()<10?'0':'') + d.getMinutes();
  i.value = h + ':' + m;
}
<a onclick="timeNow(test1)" href="#">SET TIME</a>
<input id="test1" type="time" value="10:40" />


최신 정보

이제 간단하게 사용할 수있는 충분한 브라우저 지원이 있습니다. toLocaleTimeString

들어 HTML5의 종류 time형식이어야합니다 hh:mm.

function timeNow(i) {
  i.value = new Date().toLocaleTimeString([], {hour: '2-digit', minute:'2-digit'});
}
<a onclick="timeNow(test1)" href="#">SET TIME</a>
<input id="test1" type="time" value="10:40" />

Try it on jsfiddle


3
나는 파티에 늦었다. 투표 주셔서 감사합니다 :)
DreamTeK

... 'set'으로 'get'을 오타 했습니까? 그렇지 않은 경우 답변이 제목과 일치하지 않으며 제목이 질문과 일치하지 않습니다.
기금 모니카의 소송

@QPaysTaxes 내 대답은 두 가지를 모두 수행합니다. 자바 스크립트는 시간을 가져오고 HTML은 필요한 경우 코드를 사용하여 시간을 설정하는 방법을 사용자에게 보여줍니다. 나는 그것을 반영하기 위해 대답을 업데이트했다. 지적 해 주셔서 감사합니다.
DreamTeK

시간이 30 분 뒤에 표시됩니다. 시간 설정을 클릭하면 정확하지만 군사 시간입니다. 설정 시간은 작동하지 않는 토글 추측이되어야합니다
Ciasto piekarz

toLocaleTime은 브라우저의 로케일에 따라 다른 형식을 갖습니다. 대신 fr과 같은 PM / AM없이 고정 로케일을 사용하여 html5 시간 형식과 일치하는 시간을 얻을 수 있습니다new Date().toLocaleTimeString('fr', {hour: '2-digit', minute:'2-digit'});
Tofandel

24

시험

new Date().toLocaleTimeString().replace("/.*(\d{2}:\d{2}:\d{2}).*/", "$1");

또는

new Date().toTimeString().split(" ")[0];

두 번째 형식에서는 toString () 만 사용하고 0을 4로 변경하면 HH : MM : SS 형식의 시간 만 표시됩니다.
BigMac66



6

이 시도:

var date = new Date();
var hour = date.getHours();
var min = date.getMinutes();

5
function getCurrentTime(){
    var date = new Date();
    var hh = date.getHours();
    var mm = date.getMinutes();

    hh = hh < 10 ? '0'+hh : hh; 
    mm = mm < 10 ? '0'+mm : mm;

    curr_time = hh+':'+mm;
    return curr_time;
}

초가없는 시간이고 PM 또는 AM 부품이 필요하지 않은 경우 위 코드는 완벽하게 작동합니다.
프리

3

이 Date 메소드를 참조하십시오 ...

  • toLocaleTimeString- https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleTimeString

  • toTimeString- https: //developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toTimeString


3

이것은 당신이 그것을 할 수있는 방법입니다.

const date = new Date();
const time = date.toTimeString().split(' ')[0].split(':');
console.log(time[0] + ':' + time[1])


1
이것보다 덜 비밀 스럽거나 더 좋습니다 new Date().toTimeString().slice(0, 5).
Dan Dascalescu

1
@DanDascalescu (주로) 파이썬 개발자로서 나는 당신이 제공 한 암호 한 줄 라이너에 감사하고 Parmeet Singh의 간결한 답변 (당신이 참조한다고 가정 한)을 볼 수 있도록 페이지를 충분히 아래로 스크롤하지 않았을 것입니다. 감사!
Jason R Stevens CFA


1

이 방법을 간단히 사용할 수 있습니다.

console.log(new Date().toLocaleTimeString([], { hour: '2-digit', minute: "2-digit", hour12: false }));
console.log(new Date().toLocaleTimeString([], { hour: '2-digit', minute: "2-digit" }));


0

이것이 가장 짧은 방법입니다.

var now = new Date().toLocaleTimeString();
console.log(now)

여기에 언급되지 않은 문자열 조작 방법도 있습니다.

var now = new Date()
console.log(now.toString().substr(16,8))

최단은 Date().substr(16, 5)입니다. 당신은 필요하지 않습니다 toString().
Dan Dascalescu

0

변수에 할당하고 표시하십시오.

time = new Date();

var hh = time.getHours();
var mm = time.getMinutes();
var ss = time.getSeconds() 

document.getElementById("time").value = hh + ":" + mm + ":" + ss;

왜 이것이 time요소에 저장되어야한다고 가정 합니까? OP는 시간과 분만 변수에 저장하도록 요청했습니다. let time = Date().substr(16, 5)것을 수행.
Dan Dascalescu

0

날짜 및 시간을 분리하고 시간 및 날짜 HTML 입력과 호환되는 형식으로 가져 오는 간단한 기능

function formatDate(date) {
  var d         = new Date(date),
      month = '' + (d.getMonth() + 1),
      day   = '' + d.getDate(),
      year  = d.getFullYear();

  if (month.length < 2) month = '0' + month;
  if (day.length < 2) day = '0' + day;

  return [year, month, day].join('-');
}

function formatTime(date) {
        var hours   = new Date().getHours() > 9 ? new Date().getHours() : '0' + new Date().getHours()
        var minutes = new Date().getMinutes() > 9 ? new Date().getMinutes() : '0' + new Date().getMinutes()

        return hours + ':' + minutes
}

-1
var today = new Date();  //gets current date and time
var hour = today.getHours();         
var minute = today.getMinutes();
var second = today.getSeconds();

1
이것이 기존 답변에 어떻게 추가됩니까? 핵심 문제는의 부재였다 new.
RomainValeri 19


-3
var hours = date.getHours();
        var minutes = date.getMinutes();
        var ampm = hours >= 12 ? 'pm' : 'am';
        hours = hours % 12;
        hours = hours ? hours : 12; // the hour '0' should be '12'
        minutes = minutes < 10 ? '0'+minutes : minutes;
        var strTime = hours + ':' + minutes + ' ' + ampm;
        console.log(strTime);
        $scope.time = strTime;

        date.setDate(date.getDate()+1);
        month = '' + (date.getMonth() + 1),
        day = '' + date.getDate(1),
        year = date.getFullYear();
        if (month.length < 2) month = '0' + month;
        if (day.length < 2) day = '0' + day;
        var tomorrow = [year, month, day].join('-');
        $scope.tomorrow = tomorrow;
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.