如何从日期对象获取年/月/日?

时间:2010-01-06 13:37:24

标签: javascript date

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

如何以2009/12/30格式获取日期?

18 个答案:

答案 0 :(得分:336)

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;

或者您可以设置新日期并提供上述值

答案 1 :(得分:90)

var dt = new Date();

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

由于月份索引为0,因此您必须将其递增1。

<强> 修改

有关日期对象功能的完整列表,请参阅

<强> Date

getMonth()

根据当地时间返回指定日期的月份(0-11)。

getUTCMonth()

根据通用时间返回指定日期的月份(0-11)。

答案 2 :(得分:72)

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"

答案 3 :(得分:24)

我建议您使用Moment.js http://momentjs.com/

然后你可以这样做:

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

注意:如果你想要当前的TimeDate,你实际上不需要添加new Date(),我只是将它添加为可以将日期对象传递给它的引用。对于当前的TimeDate,这也有效:

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

答案 4 :(得分:16)

不错的格式加载项:http://blog.stevenlevithan.com/archives/date-time-format

你可以这样写:

var now = new Date();
now.format("yyyy/mm/dd");

答案 5 :(得分:13)

<强>信息

如果需要2位数的月份和日期(2016/01/01 vs 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月6日

<强>拨弄

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

<强>信用

来自和credit to this answer的更多信息

更多

要详细了解.slice w3schools try it yourself editor帮助我更好地了解如何使用它。

答案 6 :(得分:13)

为什么不将方法toISOString()slice一起使用,或者不直接将toLocaleDateString()

在这里检查:

const d = new Date(); // today, now

console.log(d.toISOString().slice(0, 10)) // YYYY-MM-DD

console.log(d.toLocaleDateString('en-US')); // M/D/YYYY
console.log(d.toLocaleDateString('de-DE')); // D.M.YYYY
console.log(d.toLocaleDateString('pt-PT')); // DD/MM/YYYY

答案 7 :(得分:12)

使用Date get methods。

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

答案 8 :(得分:9)

欧洲(英语/西班牙语)格式
我也需要得到当天的日子,你可以使用这个。

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 :(得分:9)

2021 年答案

您可以使用原生 .toLocaleDateString() 函数,该函数支持多个有用的参数,例如 locale(选择 MM/DD/YYYY 或 YYYY/MM/DD 等格式)、时区(转换日期)和格式详细信息选项(例如:1 vs 01 vs 一月)。

示例

new Date().toLocaleDateString() // 8/19/2020

new Date().toLocaleDateString('en-US', {year: 'numeric', month: '2-digit', day: '2-digit'}); // 08/19/2020 (month and day with two digits)

new Date().toLocaleDateString('en-ZA'); // 2020/08/19 (year/month/day) notice the different locale

new Date().toLocaleDateString('en-CA'); // 2020-08-19 (year-month-day) notice the different locale

new Date().toLocaleString("en-US", {timeZone: "America/New_York"}); // 8/19/2020, 9:29:51 AM. (date and time in a specific timezone)

new Date().toLocaleString("en-US", {hour: '2-digit', hour12: false, timeZone: "America/New_York"});  // 09 (just the hour)

请注意,有时要以您想要的特定格式输出日期,您必须找到与该格式兼容的语言环境。 您可以在此处找到语言环境示例:https://www.w3schools.com/jsref/tryit.asp?filename=tryjsref_tolocalestring_date_all

请注意,locale 只是更改格式,如果您想将特定日期转换为特定国家或城市的等效时间,则需要使用 timezone 参数.

答案 10 :(得分:5)

根据接受的答案,1月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();

答案 11 :(得分:5)

let dateObj = new Date();

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

作为参考,您可以查看以下详细信息

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)

//返回分钟数(0-59) new Date()。getMonth()//返回月份(0-11) new Date()。getSeconds()//返回秒数(0-59) new Date()。getTime()//返回时间(自1970年1月1日以来的毫秒数)

答案 12 :(得分:2)

<块引用>

它是动态的 它会从用户的浏览器设置中收集语言

<块引用>

option 对象中使用 minuteshour 属性来处理它们。 您可以使用 long 值来表示月份,例如 8 月 23 日等...

function getDate(){
 const now = new Date()
 const option = {
  day: 'numeric',
  month: 'numeric',
  year: 'numeric'
 }
 const local = navigator.language
 labelDate.textContent = `${new 
 Intl.DateTimeFormat(local,option).format(now)}`
}
getDate()

答案 13 :(得分:2)

您只需使用此一行代码即可获得年 - 月 - 日期格式的日期

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

答案 14 :(得分:0)

这是使用模板文字获取年/月/日的一种更干净的方法:

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

答案 15 :(得分:0)

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

答案 16 :(得分:-1)

ES2018引入了可用于捕获日,月和年的正则表达式捕获组:

insert into table_shop ([IU], [ODD]) values ('A0001', 'D08')
insert into table_shop ([IU], [ODD]) values ('Agw44', 'D10')
insert into table_shop ([IU], [ODD]) values ('A5888', 'D18')
.
.
.

此方法的优点是可以捕获非标准字符串日期格式的日,月,年。

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

答案 17 :(得分:-1)

我正在使用它,如果你传递日期obj或js时间戳:

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