Как да получа текущата дата в 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;
на какъвто формат желаете.
ОБНОВЕНА!, превъртете надолу
Ако искате нещо просто и красиво за крайния потребител ... Също така, поправен е малък проблем със суфикса в първата версия по-долу. Сега правилно се връща суфиксът.`
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 UPDATE След дълго отлагане, най-накрая GitHubbed и актуализирах това с окончателното решение, което използвам за себе си. В него дори бяха направени някои редакции в последния момент, за да стане по-сладко! Ако търсите стария [jsFiddle, моля, вижте това][2].
Тази актуализация идва в 2 вкуса, все още сравнително малка, макар и не толкова малка, колкото горния ми, оригинален отговор. Ако искате да е изключително малък, използвайте този вариант.
Също така имайте предвид: Това все още е по-малко раздуто от moment.js. Въпреки че moment.js е хубав, imo, той има твърде много светски методи, които изискват изучаването на moment като на език. Моят тук използва същия общ формат като PHP: date.
Вкус 1 [
new Date().format(String)
][3] Моят личен фаворит. Знам, че е табу, но работи чудесно на обекта Date. Просто имайте предвид всички други модификации, които може да имате за обекта Date.
// use as simple as
new Date().format('m-d-Y h:i:s'); // 07-06-2016 06:38:34
Вкус 2 [
dateFormat(Date, String)
][4] По-традиционен метод "всичко в едно". Притежава всички възможности на предишния, но се извиква чрез метода с парама Date.
// use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s'); // 07-06-2016 06:38:34
БОНУС ВКУС (изисква jQuery)
$.date(Date, String)
Това съдържа много повече от обикновена опцияformat
. Тя разширява основния обект Date и включва методи катоaddDays
. За повече информация, моля, вижте Git.
В този мод форматиращите символи са вдъхновени от PHP: date. За пълен списък, моля, вижте моя README
Този мод има и много по-дълъг списък с предварително създадени формати. За да използвате предварително създаден формат, просто въведете името на ключа му. dateFormat(new Date(), 'pretty-a');
Както може би сте забелязали, можете да използвате двойно \
за избягване на символ.
Опитайте това:
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