Bagaimana cara mendapatkan waktu saat ini hanya dalam JavaScript


144

Bagaimana saya bisa mendapatkan waktu saat ini dalam JavaScript dan menggunakannya dalam timepicker?

Saya mencoba var x = Date()dan mendapatkan:

Sel 15 Mei 2012 05:45:40 GMT-0500

Tapi saya hanya perlu waktu saat ini, misalnya, 05:45

Bagaimana saya bisa menetapkan ini ke variabel?


15
@swati Karena kami ingin ini menjadi sumber goto kami untuk semua masalah pemrograman kami. Mungkin orang lain memiliki solusi yang lebih baik dan dengan cara ini mereka semua dapat dicantumkan sebagai referensi di satu tempat.
Alfred

27
@swati - Saya tahu Anda menulis komentar itu lebih dari 3 tahun yang lalu, tetapi sekarang halaman ini adalah hasil pencarian # 1 di Google untuk "get time part JavaScript". Ingatlah bahwa pertanyaan hari ini ADALAH hasil pencarian besok.
David Deutsch

@DavidDeutsch Ini harus seperti tajuk tebal pada halaman Ajukan pertanyaan. "pertanyaan hari ini ADALAH hasil pencarian besok"
Vaulstein

Jawaban:


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

atau

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 outputNaN
Chinmay235

1
@ Chinmay235 Ditambahkan Tjadi sekarang ini adalah universal universal iso. BTW saya hanya melihat undefineddi IE. Tetap Diperbaiki.
Royi Namir

126

Pendek dan sederhana:

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

4 jam kemudian (gunakan milisec: sec == 1000):

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

2 hari sebelumnya:

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

6
Perhitungan penambahan dan pengurangan sangat membantu!
Dov Miller

Apa yang harus saya ubah jika saya ingin menambahkan 1 menit saja?
lets0code

80

Dapatkan dan atur waktu saat ini secara efisien menggunakan javascript

Saya tidak dapat menemukan solusi yang melakukan apa yang saya butuhkan. Saya ingin kode yang kecil dan bersih jadi saya datang dengan ini:

(Atur sekali di master.js Anda dan aktifkan bila diperlukan.)

JAVASCRIPT MURNI

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" />


MEMPERBARUI

Sekarang ada dukungan browser yang cukup untuk hanya menggunakan: toLocaleTimeString

Untuk tipe html5time formatnya harus 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
@ gcoleman0828 saya terlambat ke pesta. Terima kasih atas suaranya :)
DreamTeK

... Apakah Anda mengetik 'get' sebagai 'set'? Jika tidak, jawaban Anda tidak cocok dengan judul Anda dan judul Anda tidak cocok dengan pertanyaan itu.
Dana Gugatan Monica

@QPaysTaxes Jawaban saya melakukan keduanya. Javascript mendapatkan waktu dan html menunjukkan kepada pengguna bagaimana kode dapat digunakan untuk mengatur waktu juga jika diperlukan. Saya telah memperbarui jawaban saya untuk mencerminkan hal itu. terima kasih telah menunjukkannya.
DreamTeK

waktu menunjukkan 30 menit di belakang untuk saya, jika saya mengklik Set time, itu benar tetapi dalam waktu militer. Setel waktu harus beralih tebakan yang tidak berfungsi
Ciasto piekarz

ToLocaleTime akan memiliki format berbeda tergantung pada lokal browser, sebagai gantinya Anda dapat menggunakan lokal tetap tanpa PM / AM seperti fr untuk mendapatkan waktu yang cocok dengan format waktu HTML5new Date().toLocaleTimeString('fr', {hour: '2-digit', minute:'2-digit'});
Tofandel

24

Mencoba

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

Atau

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

Dalam bentuk kedua jika Anda hanya menggunakan toString () dan mengubah 0 ke 4 Anda juga mendapatkan hanya waktu dalam format HH: MM: SS.
BigMac66

9

Maksudmu:

var d = new Date();
var curr_hour = d.getHours();
var curr_min = d.getMinutes();


6

Coba ini:

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;
}

Jika yang Anda butuhkan adalah waktu tanpa detik dan Anda tidak memerlukan bagian-bagian PM atau AM, kode di atas akan bekerja dengan sempurna.
Hamfri


3

Ini bagaimana Anda bisa melakukannya.

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


1
Ini tidak lebih samar atau lebih baik daripada new Date().toTimeString().slice(0, 5).
Dan Dascalescu

1
@DanDascalescu Sebagai (terutama) Python dev Saya menghargai cryptic one-liner yang Anda berikan dan tidak akan menggulir cukup jauh ke bawah halaman untuk melihat jawaban singkat Parmeet Singh (yang saya asumsikan Anda maksudkan). Terima kasih!
Jason R Stevens CFA

2

ini -

var x = new Date(); 
var h = x.getHours(); 
var m = x.getMinutes(); 
var s = x.getSeconds(); 

begitu-

 x = date
h = hours
m = mins
s = seconds

1

Anda cukup menggunakan metode ini.

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

Ini jalan terpendek.

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

Berikut ini juga cara manipulasi string yang tidak disebutkan.

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

Yang terpendek adalah Date().substr(16, 5). Anda tidak perlu toString().
Dan Dascalescu

0

Tetapkan ke variabel dan tampilkan.

time = new Date();

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

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

Mengapa menganggap ini perlu disimpan dalam suatu timeelemen? OP meminta untuk menyimpan dalam variabel, dan hanya untuk jam dan menit. let time = Date().substr(16, 5)apakah itu.
Dan Dascalescu

0

Fungsi sederhana untuk memisahkan Tanggal dan Waktu dan dengan format yang kompatibel dengan input HTML Waktu dan Tanggal

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
Bagaimana ini menambahkan sesuatu ke jawaban yang ada? Masalah intinya adalah tidak adanya new.
RomainValeri


-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;
Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.