Як отримати поточну дату в JavaScript?
new Date()
повертає поточний час , а не поточну дату . Відмінність має значення, якщо ви намагаєтеся порівняти її з іншою датою, яка не має компонента часу (тобто опівночі).
Як отримати поточну дату в JavaScript?
new Date()
повертає поточний час , а не поточну дату . Відмінність має значення, якщо ви намагаєтеся порівняти її з іншою датою, яка не має компонента часу (тобто опівночі).
Відповіді:
Використовуйте 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;
потрібний формат.
01
, 02
, ...,09
Date.prototype.toLocaleDateString()
метод є більш гнучким рішенням. Це частина JavaScript з ECMAScript 5.1 і добре підтримується вічнозеленими браузерами. MDN:toLocaleDateString()
var utc = new Date().toJSON().slice(0,10).replace(/-/g,'/');
document.write(utc);
Використовуйте replace
опцію, якщо ви збираєтеся повторно використовувати utc
змінну, наприклад new Date(utc)
, як Firefox та Safari не розпізнають дату з тире.
toUTCString()
повертається як utc datetime.
moment( new Date().toJSON().slice(0, 10) )
ОНОВЛЕНО! , Прокрути вниз
Якщо ви хочете чогось простого досить кінцевому користувачеві ... 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 Після багатьох зволікань я нарешті GitHubbed і оновив це остаточне рішення, яке я використовував для себе. Навіть було внесено зміни в останню хвилину, щоб зробити його солодшим! Якщо ви шукаєте старий jsFiddle, перегляньте це .
Це оновлення має 2 смаки, все ще відносно невеликі, хоча і не такі маленькі, як моя вище, оригінальна відповідь. Якщо ви хочете вкрай малого, продовжуйте це.
Також зверніть увагу: Це все ще менш роздуто, ніж moment.js. Хоча moment.js хороший, imo, він має занадто багато світських методів, які вимагають моменту навчання, ніби це мова. Шахта тут використовує той самий загальний формат, що і PHP: date .
Аромат 1
new Date().format(String)
Моя особиста прихильність Я знаю табу, але чудово працює на об’єкті дати. Будьте в курсі будь-яких інших мод, які можуть виникнути у вас в об'єкті дати.
// use as simple as
new Date().format('m-d-Y h:i:s'); // 07-06-2016 06:38:34
Смак 2
dateFormat(Date, String)
Більш традиційний метод "все в одному". Має всі можливості попереднього, але викликається за допомогою методу з параметром Date.
// use as simple as
dateFormat(new Date(), 'm-d-Y h:i:s'); // 07-06-2016 06:38:34
BONUS Flavour (вимагає jQuery)
$.date(Date, String)
Це містить набагато більше, ніж просто простийformat
варіант. Він розширює базовий об'єкт Date і включає такі методи, якaddDays
. Для отримання додаткової інформації див. Git .
У цьому моді символи формату надихаються PHP: date . Щоб ознайомитись із повним списком, будь ласка, ознайомтесь із моєю README
Цей мод також має набагато довший список готових форматів. Для використання попереднього формату просто введіть його ключову назву.dateFormat(new Date(), 'pretty-a');
Як ви можете помітити, ви можете використовувати подвійний, \
щоб уникнути персонажа.
Найкоротший можливий.
Щоб отримати такий формат, як "2018-08-03":
let today = new Date().toISOString().slice(0, 10)
console.log(today)
Щоб отримати такий формат, як "3/8/2018":
let today = new Date().toLocaleDateString()
console.log(today)
Також ви можете передавати локаль як аргумент, наприклад toLocaleDateString("sr")
, тощо.
Якщо ви просто хочете побачити без інформації про час, скористайтеся:
var today = new Date();
today.setHours(0, 0, 0, 0);
document.write(today);
Спробуйте це:
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
Якщо ви шукаєте набагато більш детальний контроль над форматами дат, я настійно рекомендую перевірити моменти. Страхітична бібліотека - і всього 5 КБ. http://momentjs.com/
Ви можете використовувати moment.js: 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>
moment().format("L")
поважати поточний локал.
var d = (new Date()).toString().split(' ').splice(1,3).join(' ');
document.write(d)
Щоб розділити його на етапи:
(new Date()).toString()
надає "Пт 28 червня 2013 15:30:18 GMT-0700 (PDT)"
(new Date()).toString().split(' ')
ділить вищезазначений рядок на кожен пробіл і повертає масив таким чином: ["Fri", "Jun", "28", "2013", "15:31:14", "GMT-0700", "(PDT)" ]
(new Date()).toString().split(' ').splice(1,3).join(' ')
приймає друге, третє та четверте значення з вищевказаного масиву, з'єднує їх з пробілами та повертає рядок "28 червня 2013"
Date().split(' ').splice(1,3).join(' ')
Це працює щоразу:
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);
console.log(today);
var date = new Date().toLocaleDateString("en-US");
Також ви можете викликати метод toLocaleDateString
з двома параметрами:
var date = new Date().toLocaleDateString("en-US", {
"year": "numeric",
"month": "numeric"
});
new Date().toLocaleDateString("de-de")
робить трюк для мене.
Чистіший, простіший варіант:
new Date().toLocaleString();
Результат залежить від місцеположення користувача :
27.02.2017 р., 9:15:41
Якщо ви задоволені форматом YYYY-MM-DD, це також зробить цю роботу.
new Date().toISOString().split('T')[0]
2018-03-10
Ви можете використовувати бібліотеку Date.js, яка розширює об'єкт Date, таким чином, ви можете використовувати метод .today ().
Ви можете отримати поточний виклик дати статичним методом зараз таким чином:
var now = Date.now()
довідка:
https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now
var dtToday = new Date(date.now);
Відповідь Варуна не враховує TimezoneOffset . Ось версія, яка робить:
var d = new Date()
new Date(d.getTime() - d.getTimezoneOffset() * 60000).toJSON().slice(0, 10) // 2015-08-11
Це TimezoneOffset
хвилини, тоді як конструктор Date займає мілісекунди, таким чином, множення на 60000
.
Найкоротший відповідь: new Date().toJSON().slice(0,10)
new Date().toDateString();
Результат:
"Ср 03 лютого 2016 р."
Так toISOString()
як повернеться лише поточний час UTC, а не місцевий час. Нам потрібно зробити дату, використовуючи функцію '.toString ()', щоб отримати дату у такому yyyy-MM-dd
форматі
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('T')[0]);
Щоб отримати дату та час у yyyy-MM-ddTHH:mm:ss
форматі
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0]);
Щоб отримати дату та час у yyyy-MM-dd HH:mm:ss
форматі
document.write(new Date(new Date().toString().split('GMT')[0]+' UTC').toISOString().split('.')[0].replace('T',' '));
Якщо ви хочете простого DD/MM/YYYY
формату, я просто придумав це просте рішення, хоча воно не має префіксу відсутні нулі.
var d = new Date();
document.write( [d.getDate(), d.getMonth()+1, d.getFullYear()].join('/') );
Останнє редагування: 23.08.19 Бібліотека date-fns працює так само, як moment.js але має ШЛЯХ менший слід. Це дозволяє вишеньці вибрати, які функції ви хочете включити у свій проект, тому вам не доведеться збирати всю бібліотеку для форматування сьогоднішньої дати. Якщо мінімальна кількість сторонніх ліній не є варіантом для вашого проекту, я схвалюю прийняте рішення Семюеля Меддоуса вгорі.
Збереження історії нижче, оскільки вона допомогла небагатьом людям. Але для запису досить гакітно і може бути зламано без попередження, як і більшість рішень на цій посаді
EDIT 2/7/2017 Однолінійне рішення JS:
tl; dr.
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
край, найновіша версія та хром поверненняtodaysDate = "2/7/2017"
"працює" * в IE10 +
Пояснення
Я з'ясував, що IE10 і IE Edge роблять щось трохи інакше. зnew Date(Date.now()).toLocaleString()
введенням,
IE10 повертає:
"Tuesday, February 07, 2017 2:58:25 PM"
Я міг би написати велику довгу функцію і FTFY. Але ви дійсно повинні використовувати moment.js для цього матеріалу. Мій сценарій просто очищує це і дає вам розширені традиційні позначення в США:> todaysDate = "March 06, 2017"
IE EDGE повертає:
"2/7/2017 2:59:27 PM"
Звичайно, це не може бути таким простим. Рядок дати Edge має невидимі символи "•" між кожним видимим. Тож ми не тільки перевірятимемо, чи є перший символ цифрою, але й перші 3 символи, оскільки виявляється, що будь-який окремий символ у цілому діапазоні дат в кінцевому підсумку виявиться крапкою чи косою рисою. Отже, щоб все було просто, просто .slice () перші три символи (крихітний буфер проти майбутніх шенагіганів), а потім перевірити наявність чисел. Напевно, слід зазначити, що ці невидимі точки потенційно можуть зберігатися у вашому коді. Я б, можливо, розібрався в цьому, якщо у вас є більші плани, ніж просто надрукувати цей рядок на ваш погляд.
∴ оновлений однолінійний:
var todaysDate = new Date(Date.now()).toLocaleString().slice(0,3).match(/[0-9]/i) ? new Date(Date.now()).toLocaleString().split(' ')[0].split(',')[0] : new Date(Date.now()).toLocaleString().split(' ')[1] + " " + new Date(Date.now()).toLocaleString().split(' ')[2] + " " + new Date(Date.now()).toLocaleString().split(' ')[3];
Це гарно читати. Як щодо:
var dateString = new Date(Date.now()).toLocaleString();
var todaysDate = dateString.slice(0,3).match(/[0-9]/i) ? dateString.split(' ')[0].split(',')[0] : dateString.split(' ')[1] + " " + dateString.split(' ')[2] + " " + dateString.split(' ')[3];
ОРИГІНАЛЬНИЙ ВІДПОВІДЬ
У мене для вас є одне вкладиш:
new Date(Date.now()).toLocaleString().split(', ')[0];
і [1]
дасть вам час доби.
Ви можете використовувати це
<script>
function my_curr_date() {
var currentDate = new Date()
var day = currentDate.getDate();
var month = currentDate.getMonth() + 1;
var year = currentDate.getFullYear();
var my_date = month+"-"+day+"-"+year;
document.getElementById("dateField").value=my_date;
}
</script>
HTML є
<body onload='return my_curr_date();'>
<input type='text' name='dateField' id='dateField' value='' />
</body>
Якщо ви використовуєте jQuery. Спробуйте цей вкладиш:
$.datepicker.formatDate('dd/mm/yy', new Date());
Ось умова щодо форматування дати
Ось посилання на jQuery datepicker
Найпростіший спосіб зняти це (якщо врахувати поточний часовий пояс, скориставшись формою ISO yyyy-mm-dd), це:
let d = new Date().toISOString().substring(0,19).replace("T"," ") // "2020-02-18 16:41:58"
Зазвичай це досить сумісний універсальний формат дати, і ви можете перетворити його в чисте значення дати, якщо потрібно:
Date.parse(d); // 1582044297000
Ви можете замовити це
var today = new Date();
today = parseInt(today.getMonth()+1)+'/'+today.getDate()+'/'+today.getFullYear()+"\nTime : "+today.getHours()+":"+today.getMinutes()+":"+today.getSeconds();
document.write(today);
І дивіться документацію для конструктора Date (). посилання
У чому полягає велика справа .. Найчистіший спосіб це зробити
var currentDate=new Date().toLocaleString().slice(0,10);
3/4/2018,
, краще використовувати new Date().toJSON().slice(0,10)
.
.slice(0,10)
Це може вам допомогти
var date = new Date();
console.log(date.getDate()+'/'+(date.getMonth()+1)+'/'+date.getFullYear());
Це надрукує поточну дату у форматі dd / MM / yyyy
Це добре, щоб отримати відформатовану дату
let date = new Date().toLocaleDateString("en", {year:"numeric", day:"2-digit", month:"2-digit"});
console.log(date);
Я думаю, що це старе питання, але найпростішим способом було б наступне:
var date = new Date();
var TimeStamp = date.toLocaleString();
function CurrentTime(){
alert(TimeStamp);
}
Це захопить поточний час, передасть його в рядок на основі розташування, і тоді ви можете викликати функцію CurrentTime для відображення часу. Це був би для мене найефективніший спосіб отримати позначку часу на щось.
var currentTime = new Date();