Как получить год/месяц/день с объекта даты?

alert(dateObj) дает Wed Dec 30 2009 00:00:00 GMT+0800

Как получить дату в формате 2009/12/30?

Ответ 1

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;

или вы можете установить новую дату и предоставить приведенные выше значения

Ответ 2

var dt = new Date();

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

Поскольку индекс месяца основан на 0, вам нужно увеличить его на 1.

Edit

Полный список функций объекта даты см. в

Date

getMonth()

Возвращает месяц (0-11) в указанную дату в соответствии с местным временем.

getUTCMonth()

Возвращает месяц (0-11) в заданную дату в соответствии с универсальным временем.

Ответ 3

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"

Ответ 4

Я предлагаю вам использовать Moment.js http://momentjs.com/

Затем вы можете сделать:

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

Примечание: вам не нужно добавлять new Date(), если вы хотите текущий TimeDate, я только добавил его в качестве ссылки, чтобы вы могли передать ему объект даты. для текущего TimeDate это также работает:

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

Ответ 6

Информация

Если требуется двузначный месяц и дата (2016/01/01 против 2016/1/1)

код

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

выход

2016/10/06

играть на скрипке

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

кредит

Больше информации и кредит на этот ответ

Больше

Чтобы узнать больше о .slice попробуй сам редактор в w3schools помог мне лучше понять, как его использовать.

Ответ 8

ФОРМАТ ЕВРОПЫ (АНГЛИЙСКИЙ/ИСПАНСКИЙ)
Мне нужно также получить текущий день, вы можете использовать его.

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


* Для испанского формата просто переведите переменную WEEK.

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


Выход: Понедельник - 16/11/2015 14:24

Ответ 9

С принятым ответом 1 января будет отображаться следующим образом: 2017/1/1.

Если вы предпочитаете 2017/01/01, вы можете использовать:

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

Ответ 10

Вы можете просто использовать этот код одной строки, чтобы получить дату в формате года-месяца.

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

Ответ 11

var date = new Date().toLocaleDateString()
"5/19/2019"

Ответ 12

Вот более чистый способ получения года/месяца/дня с помощью литералов шаблона:

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

Ответ 13

ES2018 представил группы сбора регулярных выражений, которые можно использовать для определения дня, месяца и года:

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

Преимущество этого подхода заключается в возможности поймать день, месяц, год для нестандартных форматов строковых дат.

Ссылка https://www.freecodecamp.org/news/es9-javascripts-state-of-art-in-2018-9a350643f29c/

Ответ 14

Я использую это, которое работает, если вы передадите ему дату или js timestamp:

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