Bagaimana cara mendapatkan tahun / bulan / hari dari objek kencan?


240

alert(dateObj) memberi Wed Dec 30 2009 00:00:00 GMT+0800

Bagaimana cara mendapatkan tanggal dalam format 2009/12/30?


2
Anda ingin tanggal dan waktu UTC?
DOK

Jawaban:


407
var dateObj = new Date();
var month = dateObj.getUTCMonth() + 1; //months from 1-12
var day = dateObj.getUTCDate();
var year = dateObj.getUTCFullYear();

newdate = year + "/" + month + "/" + day;

atau Anda dapat mengatur tanggal baru dan memberikan nilai-nilai di atas


69
Ingat saja: Januari = 0, Februari = 1, dan seterusnya.
Rubens Farias

9
Apa perbedaan antara getMonthdan getUTCMonth?
user198729

10
UTC akan mengembalikan waktu universal. Jika Anda ingin waktu setempat, gunakan getMonth
Hiyasat

54
getUTCDay()harus diganti dengan getUTCDate(), karena hari adalah jumlah hari dalam minggu (0-6) dan tanggal adalah jumlah hari dalam sebulan (1-31).
Grzegorz Oledzki

4
Saya kira respons ini masih cacat. getUTCDate () akan mengembalikan Hari di bulan itu tetapi di Inggris. Sebagai contoh jika saya mengetik: var d = Tanggal baru ("21 Juli 1983 01:15:00"); d.getDate () mengembalikan 21 tetapi d.getUTCDate () mengembalikan hanya 20. Ini karena pukul 01:15 pagi di Perancis (di mana saya), masih 23:15 di Inggris. Untuk mendapatkan hari pada Tanggal asli Anda harus menggunakan getDate ().
Pascal Ganaye

101
var dt = new Date();

dt.getFullYear() + "/" + (dt.getMonth() + 1) + "/" + dt.getDate();

Karena indeks bulan berbasis 0, Anda harus menambahnya dengan 1.

Edit

Untuk daftar lengkap fungsi objek tanggal, lihat

Tanggal

getMonth()

Mengembalikan bulan (0-11) pada tanggal yang ditentukan sesuai dengan waktu setempat.

getUTCMonth()

Mengembalikan bulan (0-11) pada tanggal yang ditentukan sesuai dengan waktu universal.


5
Membutuhkan orangtua. Kalau tidak, Oktober akan muncul sebagai bulan 91 (sejak 9 + 1 = 91 di stringland)
merampok

5
Harus berupa dt.getFullYear () + "/" + (dt.getMonth () + 1) + "/" + dt.getDate ();
Paulius Uza

90
new Date().toISOString()
"2016-02-18T23:59:48.039Z"
new Date().toISOString().split('T')[0];
"2016-02-18"
new Date().toISOString().replace('-', '/').split('T')[0].replace('-', '/');
"2016/02/18"

new Date().toLocaleString().split(',')[0]
"2/18/2016"

2
Saya pikir ini bisa lebih baik untuk kasus baru Date ketiga (). ToISOString (). Split ('T') [0] .replace (/ - / g, '/');
Mohamed Hesham

28

Saya sarankan Anda untuk menggunakan Moment.js http://momentjs.com/

Maka Anda dapat melakukan:

moment(new Date()).format("YYYY/MM/DD");

Catatan: Anda sebenarnya tidak perlu menambahkan new Date()jika Anda ingin TimeDate saat ini, saya hanya menambahkannya sebagai referensi bahwa Anda dapat mengirimkan objek tanggal ke sana. untuk TimeDate saat ini, ini juga berfungsi:

moment().format("YYYY/MM/DD");

1
Jawaban ini bagus jika Anda ingin menambahkan ketergantungan - dan jika demikian pada 2019 day.js adalah alternatif yang lebih ringan daripada moment.js sebagai opsi untuk dipertimbangkan - github.com/iamkun/dayjs . Disebutkan juga ada Luxon dan date-fns.
BradGreens

18

info

Jika 2 digit bulan dan tanggal diinginkan (2016/01/01 vs 2016/1/1)

kode

var dateObj = new Date();
var month = ('0' + (dateObj.getMonth() + 1)).slice(-2);
var date = ('0' + dateObj.getDate()).slice(-2);
var year = dateObj.getFullYear();
var shortDate = year + '/' + month + '/' + date;
alert(shortDate);

keluaran

2016/10/06

biola

https://jsfiddle.net/Hastig/1xuu7z7h/

kredit

Info lebih lanjut dari dan kredit untuk jawaban ini

lebih

Untuk mempelajari lebih lanjut tentang .sliceyang mencoba sendiri Editor di W3Schools membantu saya memahami lebih baik bagaimana menggunakannya.


Tetapi jika tanggal ditetapkan ke Decemeber, itu tidak diteruskan ke Januari tahun depan?
Hanz Cheah


13

Gunakan metode Date Date.

http://www.tizag.com/javascriptT/javascriptdate.php

http://www.htmlgoodies.com/beyond/javascript/article.php/3470841

var dateobj= new Date() ;
var month = dateobj.getMonth() + 1;
var day = dateobj.getDate() ;
var year = dateobj.getFullYear();

4
Bulan pada objek JavaScript Tanggal diindeks nol. Pastikan untuk menambahkan 1 ke dalamnya, kalau tidak Desember akan menjadi November; November akan menjadi Oktober dan seterusnya
cllpse

1
@Aseem Seharusnya hanya bulan yang membutuhkan +1
Hastig Zusammenstellen

12
var date = new Date().toLocaleDateString()
"12/30/2009"

2
Untuk membandingkan 2 tanggal, jawaban ini teratas. Terima kasih!
Dazag

9

FORMAT EROPA (BAHASA INGGRIS / SPANYOL)
Saya perlu mendapatkan hari ini juga, Anda dapat menggunakan yang ini.

function getFormattedDate(today) 
{
    var week = new Array('Sunday', 'Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday');
    var day  = week[today.getDay()];
    var dd   = today.getDate();
    var mm   = today.getMonth()+1; //January is 0!
    var yyyy = today.getFullYear();
    var hour = today.getHours();
    var minu = today.getMinutes();

    if(dd<10)  { dd='0'+dd } 
    if(mm<10)  { mm='0'+mm } 
    if(minu<10){ minu='0'+minu } 

    return day+' - '+dd+'/'+mm+'/'+yyyy+' '+hour+':'+minu;
}

var date = new Date();
var text = getFormattedDate(date);


* Untuk format Spanyol, cukup terjemahkan variabel MINGGU.

var week = new Array('Domingo', 'Lunes', 'Martes', 'Miércoles', 'Jueves', 'Viernes', 'Sábado');


Output: Senin - 16/11/2015 14:24


6

Dengan jawaban yang diterima, 1 Jan akan ditampilkan seperti ini: 2017/1/1.

Jika suka 2017/01/01, Anda dapat menggunakan:

var dt = new Date();
var date = dt.getFullYear() + '/' + (((dt.getMonth() + 1) < 10) ? '0' : '') + (dt.getMonth() + 1) + '/' + ((dt.getDate() < 10) ? '0' : '') + dt.getDate();

6

Kenapa tidak sederhana saja?

dateObj.toISOString().slice(0, 10) // YYYY-MM-DD

Periksa di sini:

const date1 = new Date('December 17, 1995 03:24:00');
console.log(date1.toISOString().slice(0, 10))


2

Berikut ini cara yang lebih bersih untuk mendapatkan Tahun / Bulan / Hari dengan literal templat:

var date = new Date();
var formattedDate = `${date.getFullYear()}/${(date.getMonth() + 1)}/${date.getDate()}`;
console.log(formattedDate);


2
let dateObj = new Date();

let myDate = (dateObj.getUTCFullYear()) + "/" + (dateObj.getMonth() + 1)+ "/" + (dateObj.getUTCDate());

Untuk referensi Anda dapat melihat detail di bawah ini

new Date().getDate()          // Return the day as a number (1-31)
new Date().getDay()           // Return the weekday as a number (0-6)
new Date().getFullYear()      // Return the four digit year (yyyy)
new Date().getHours()         // Return the hour (0-23)
new Date().getMilliseconds()  // Return the milliseconds (0-999)
new Date().getMinutes()       // Return the minutes (0-59)
new Date().getMonth()         // Return the month (0-11)
new Date().getSeconds()       // Return the seconds (0-59)
new Date().getTime()          // Return the time (milliseconds since January 1, 1970)

let dateObj = new Date();

let myDate = (dateObj.getUTCFullYear()) + "/" + (dateObj.getMonth() + 1)+ "/" + (dateObj.getUTCDate());

console.log(myDate)

// Kembalikan menit (0-59) Tanggal baru (). GetMonth () // Kembalikan bulan (0-11) Tanggal baru (). GetSeconds () // Kembalikan detik (0-59) Tanggal baru () .getTime () // Kembalikan waktu (milidetik sejak 1 Januari 1970)


1

Anda cukup menggunakan kode satu baris ini untuk mendapatkan tanggal dalam format tahun-bulan-tanggal

var date = new Date().getFullYear() + "-" + new Date().getMonth() + 1 + "-" + new Date().getDate();

-1

Saya menggunakan ini yang berfungsi jika Anda memberikan objek tanggal atau cap waktu:

getHumanReadableDate: function(date) {
    if (date instanceof Date) {
         return date.getDate() + "/" + (date.getMonth() + 1) + "/" + date.getFullYear();
    } else if (isFinite(date)) {//timestamp
        var d = new Date();
        d.setTime(date);
        return this.getHumanReadableDate(d);
    }
}

-1

ES2018 memperkenalkan kelompok tangkapan regex yang dapat Anda gunakan untuk menangkap hari, bulan dan tahun:

const REGEX = /(?<year>[0-9]{4})-(?<month>[0-9]{2})-(?<day>[0-9]{2});
const results = REGEX.exec('2018-07-12');
console.log(results.groups.year);
console.log(results.groups.month);
console.log(results.groups.day);

Keuntungan dari pendekatan ini adalah kemungkinan untuk menangkap hari, bulan, tahun untuk format tanggal string yang tidak standar.

Ref. https://www.freecodecamp.org/news/es9-javascripts-state-of-art-in-2018-9a350643f29c/


Pertanyaan itu secara khusus menanyakan tentang memformat tanggal dalam "bulan / hari / tahun" dari objek Tanggal. Grup tangkap di regex tidak berlaku di sini.
Colin
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.