Soru Geçerli tarihi JavaScript’te nasıl alabilirim?


JavaScript’te güncel tarihi nasıl alabilirim?


1685
2017-10-07 11:39


Menşei


var currentTime = new Date(); - Hendrik
Bakın Date nesnesi için belgeler. Örnekleri var. - Quentin
bu sana yardımcı olur tizag.com/javascriptT/javascriptdate.php
new Date() akımı döndürür zamangeçerli değil tarih. Bir zaman bileşenine sahip olmayan başka bir tarihe karşı (yani gece yarısı) karşılaştırmaya çalışıyorsanız, ayrım önemlidir. - Steve Bennett
momentleri kullanın, bu lib geliştiriciler için altındır. - RBoschini


Cevaplar:


kullanım new Date() yeni oluşturmak Date Geçerli tarih ve saati içeren nesne.

var today = new Date();
var dd = today.getDate();
var mm = today.getMonth()+1; //January is 0!
var yyyy = today.getFullYear();

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

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

today = mm + '/' + dd + '/' + yyyy;
document.write(today);

Bu size bugünün tarihini mm / gg / yyyy biçiminde verecektir.

Sadece değiştirmek today = mm +'/'+ dd +'/'+ yyyy; dilediğiniz formata.


2014
2018-02-08 04:42



saat ve dakika nasıl alınır - lbennet
kod için teşekkürler .. ama hala almıyorum, (dd <10) {dd = '0' + dd} ... neden <10? Koddan anladığım kadarıyla, eğer günün karakteri 2'den azsa, sadece günün önündeki 0'ı ekleyin .. ama neden 10? - imin
@imin: çünkü 2 karakterden az karakter 1 karakter demektir ... ve 10'un altındaki her şey (1'den 9'a) 1 karakterdir, 01, 02... 09 - zfm
@MounaCheikhna - 999 yılında nasıl olabilirdik? - nnnnnn
Kuzey Amerika'da değilseniz, ay ve tarih etrafında takas yapın. - Mark Micallef


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

Kullan replace yeniden kullanacaksanız utc gibi değişken new Date(utc)Firefox ve Safari, tire ile tarihi tanımıyor.


341
2017-09-29 14:13



Doğru olmak için iyi görünüyor. Bunun herhangi bir olumsuz tarafı var mı? - Norbert
Ben öyle düşünmüyorum :) Oldukça basit görünüyor! - Varun Natraaj
toJSON () utc datetime olarak döndürür - Andy
TimezoneOffset'i dikkate almıyor. Test zamanımda "şimdi" arıyordum ve "dün" aldım. stackoverflow.com/questions/13646446/... - mickmackusa
Mükemmel. Bunu görmenin en temiz yolu, burada görüyorum. MomentJS'de "Bugün, Şimdi Değil" için iyi çalışıyor moment( new Date().toJSON().slice(0, 10) ) - Kyle Hotchkiss


GÜNCELLENMİŞ!, Aşağı kaydır

Son kullanıcı için basit bir şey istiyorsanız ... 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 GÜNCELLEME Çok ertelemeden sonra, sonunda GitHubbed ve bunu kendim için kullandığım son çözümle güncelledim. Hatta daha tatlı hale getirmek için son dakika düzenlemeleri bile vardı! Eski için arıyorsanız jsFiddle, lütfen bunu gör.

Bu güncelleme geliyor 2 yukarıdaki gibi küçük olmasa da, hala nispeten küçük tatlar, orijinal cevap. Son derece küçük istiyorsanız, bununla gidin.
 Ayrıca Not: Bu moment.js'den daha az şişirilmiş. Moment.js güzel iken, imo, bir dilmiş gibi öğrenme momentini gerektiren birçok laik yönteme sahip. Benimki burada aynı ortak biçimi kullanıyor PHP: tarih.

Hızlı Linkler

Lezzet 1 new Date().format(String)   Kişisel Fav. Tabuyu biliyorum, ama Tarih Nesnesi'nde harika çalışıyor. Sadece Tarih Nesnesine sahip olabileceğiniz diğer modlardan haberdar olun.

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

Lezzet 2 dateFormat(Date, String)   Daha geleneksel hepsi bir arada yöntem. Geçmişin tüm yetenekleri vardır, ama Tarih param ile yöntemle çağrılır.

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

BONUS Lezzet (jQuery gerektirir) $.date(Date, String)   Bu sadece basit bir şeyden çok daha fazlasını içerir format seçeneği. Temel Tarih nesnesini genişletir ve addDays. Daha fazla bilgi için lütfen Git.

Bu modda, biçim karakterleri esinlenerek PHP: tarih. Tam bir liste için lütfen README

Bu mod ayrıca önceden yapılmış biçimlerin çok daha uzun bir listesine sahiptir. Prefabrik bir format kullanmak için, sadece anahtar adını girin. dateFormat(new Date(), 'pretty-a');

  • 'Bileşiği'
    • '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' == 'Y-m-d h: i: s'
    • 'postgreSQL' == 'Y.z'
    • 'postgreSQL2' == 'Yz'
    • 'sabun' == 'Y-m-d \\ TH: i: s.u'
    • 'soap2' == 'Y-m-d \\ TH: i: s.uP'
    • 'unixTimestamp' == '@U'
    • 'xmlrpc' == 'Ymd \\ TG: i: s'
    • 'xmlrpcCompact' == 'Ymd \\ tGis'
    • 'wddx' == 'Y-n-j \\ TG: i: s'
  • 'Sabitler'
    • 'AMERICAN' == 'F j Y'
    • 'AMERICANSHORT' == 'm / d / Y'
    • 'AMERICANSHORTWTIME' == 'm / d / Y h: i: sA'
    • 'ATOM' == 'Y-m-d \\ TH: i: sP'
    • 'COOKIE' == 'l d-M-Y H: i: s T'
    • 'AVRUPA' == 'j F Y'
    • 'EUROPEANSHORT' == 'd.m.Y'
    • 'EUROPEANSHORTWTIME' == 'd.m.Y H: i: s'
    • 'ISO8601' == 'Y-m-d \\ TH: i: sO'
    • 'YASAL' == 'j F Y'
    • 'RFC822' == 'D d M y H: i: s O'
    • 'RFC850' == 'l d-M-y H: i: s T'
    • 'RFC1036' == 'D D M y H: i: s O'
    • 'RFC1123' == 'D M Y H: i: s O'
    • 'RFC2822' == 'D M Y H: i: s O'
    • 'RFC3339' == 'Y-m-d \\ TH: i: sP'
    • 'RSS' == 'D M Y H: i: s O'
    • 'W3C' == 'Y-m-d \\ TH: i: sP'
  • 'güzel'
    • 'güzel-a' == 'g: i.sA l jS \\ o \ f F Y'
    • 'güzel-b' == 'g: iA lsS \\ F \ Y'
    • 'pretty-c' == 'n / d / Y g: iA'
    • 'güzel-d' == 'n / d / Y'
    • 'pretty-e' == 'F jS - g: ia'
    • 'pretty-f' == 'g: iA'

Fark edebileceğiniz gibi, çift kullanabilirsiniz \ bir karakterden kaçmak için.



187
2018-02-10 14:33



@KamranAhmed Yaklaşık 2 yıl ve 40 oy sonra, çabaya değdi diyebilirim. LoL. Bu sınıfı kişisel olarak çoktan genişletdim, ancak çoğu insanın tavsiye ettiğim diğer js eklentisini kullanacağını düşündüğüm gibi yüklemedim, ama sanırım daha fazla "kamu" yapmalı ve buraya eklemeliyim. - SpYk3HH
moment.js şimdi bu günleri kullanacağınız şey - Christian Stewart
Çaba ve hafif için Thumbs up! - Mike Devenney
Yukarıda yazılan bir yazım hatası var (bu da beni bir süre araladı), satırdaki "bugün" değişkenini kullanıyor: "dayOfMonth = bugün +" - user1435707
"bugün + (objToday.getDate () <10)? '0' + objToday.getDate () + domEnder: objToday.getDate () + domEnder" - JS aptal dildir. - Alex S


Zaman bilgisi olmayan bir tarih istiyorsanız, şunu kullanın:

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

document.write(today);


115
2017-09-02 06:14



Bu, soruyu cevaplayan tek cevap gibi görünüyor. Herkes başka bir tarihin dize olarak nasıl biçimlendirileceğini yanıtlar. - Inrego
Bu konudaki ++ en iyi cevap - Pawel Gradecki
Aslında. Bu sorunun doğru cevabıdır. - tkarls


Bunu dene:

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

Sonuç gibi olacak

15/2/2012

90
2018-02-15 08:48





Mümkün olan en kısa. 

"2018-08-03" gibi format almak için:

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

console.log(today)

"8/3/2018" gibi bir biçim almak için:

let today = new Date().toLocaleDateString()

console.log(today)

Ayrıca geçebilirsin yerel örneğin argüman olarak toLocaleDateString("sr"), vb.


62
2018-03-10 16:30





Tarih biçimleri üzerinde çok daha ayrıntılı bir denetim arıyorsanız, momentleri kontrol etmenizi iyice öneriyorum. Müthiş kütüphane - ve sadece 5KB. http://momentjs.com/


57
2017-12-12 01:03



Bu bulduğum en iyi zaman lib! - andho
Yerelleştirmeyi bir çekicilik gibi destekler. - Risadinha
Bugünlerde date-fns kullanıyoruz - tarihleri ​​erimsiz (Moment mutates tarihleri), daha hızlı ve modüler (sadece ihtiyacınız olan şeyleri içe aktarır) olarak ele alır. - Luke Williams
Evet, daha fazla katılıyorum. - d3cypher


Moment.js'yi kullanabilirsiniz: 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>


45
2017-08-16 11:56



En iyi cevap, MomentJs harika görünüyor. - nottinhill
Şu anki tarihi almak için Moment fazladır. - Dan Dascalescu
Veya moment().format("L") Mevcut yerel ayarlara saygı duymak için. - Dunc
@DanDascalescu Aslında, DateTime için Javascript temel belirtimi o kadar kötü. - Todd


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

document.write(d)

Adımlara ayırmak için:

  1. (new Date()).toString() "Fri Jun 28 2013 15:30:18 GMT-0700 (PDT)" verir

  2. (new Date()).toString().split(' ') yukarıdaki dizgiyi her boşlukta böler ve aşağıdaki gibi bir dizi döndürür: ["Cum", "Jun", "28", "2013", "15:31:14", "GMT-0700", "(PDT)" ]

  3. (new Date()).toString().split(' ').splice(1,3).join(' ') yukarıdaki diziden ikinci, üçüncü ve dördüncü değerleri alır, boşluklarla birleştirir ve "Jun 28 2013" dizesini döndürür


41
2018-06-28 22:32



Saat 00:00 da bir zamana ihtiyacım vardı ve bunu manuel olarak yeniden inşa etmek istemedim; 2. adım beni oraya mükemmel götürüyor. Kudos! - panhandel
Bunu yaparak bazı baytları kaydedebilirsiniz: Date().split(' ').splice(1,3).join(' ') - hyde
Ayrıldığınız için teşekkürler! - Zach Saucier


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

Ayrıca, yöntemini çağırabilirsiniz toLocaleDateString iki parametre ile:

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

Makale MSDN. Bu yöntemle ilgili daha fazla bilgi edinin MDN.


36
2017-07-09 07:01



Güzel, Chrome'da çalışıyor. Ne yazık ki, 22/04/2016 tarihinde PhantomJS üzerinde çalışmıyor - chris


Bu her zaman çalışır:

    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);
    
    document.write(today);


34
2017-11-03 18:03