如何在JavaScript中获取当前日期?


当前回答

基础知识

如果您对2016年1月24日星期日21:23:07 GMT+0100(CET)格式感到满意,您可以使用以下代码:

var today = new Date();

Date.product.toLocaleDateString()

如果要格式化输出,请考虑使用Date.protype.toLocaleDateString():

var today = new Date().toLocaleDateString('de-DE', {     
    weekday: 'long', 
    year: 'numeric',
    month: 'long',
    day: 'numeric'
});

如果您今天(1月24日)执行了该代码ᵗʰ,2016),它将产生字符串Sonntag,24。2016年1月。但是,较旧的浏览器可能会产生不同的结果,例如IE<11不支持区域设置或选项参数。

正在自定义

如果Date.product.toLocaleDateString()不够灵活,无法满足您可能需要的任何需求,您可能需要考虑创建一个自定义Date对象,如下所示:

var DateObject = (function() {
    var monthNames = [
      "January", "February", "March",
      "April", "May", "June", "July",
      "August", "September", "October",
      "November", "December"
    ];
    var date = function(str) {
        this.set(str);
    };
    date.prototype = {
        set : function(str) {
            var dateDef = str ? new Date(str) : new Date();
            this.day = dateDef.getDate();
            this.dayPadded = (this.day < 10) ? ("0" + this.day) : "" + this.day;
            this.month = dateDef.getMonth() + 1;
            this.monthPadded = (this.month < 10) ? ("0" + this.month) : "" + this.month;
            this.monthName = monthNames[this.month - 1];
            this.year = dateDef.getFullYear();
        }
    };
    return date;
})();

如果您今天(1月24日)包含了该代码并执行了新的DateObject()ᵗʰ,2016),它将生成具有以下财产的对象:

day: 24
dayPadded: "24"
month: 1
monthPadded: "01"
monthName: "January"
year: 2016

其他回答

你可以用这个

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

您可以像这样获取当前日期调用静态方法:

var now = Date.now()

参考:

https://developer.mozilla.org/en/docs/Web/JavaScript/Reference/Global_Objects/Date/now

能够以自定义格式呈现,并在不同地区使用月份名称:

const locale = 'en-us';
const d = new Date(date);

const day = d.getDate();
const month = d.toLocaleString(locale, { month: 'long' });
const year = d.getFullYear();

const time = d.toLocaleString(locale, { hour12: false, hour: 'numeric', minute: 'numeric'});

return `${month} ${day}, ${year} @ ${time}`; // May 5, 2019 @ 23:41

重要提示:不要使用:var today=new Date();

但是var dateToday=new Date();,例如,var今天没有表示任何内容。

大多数其他答案都提供了日期和时间。如果你只需要日期。

new Date().toISOString().split("T")[0]

输出

[ '2021-02-08', '06:07:44.629Z' ]

如果要使用/format,请使用replaceAll。

new Date().toISOString().split("T")[0].replaceAll("-", "/")

如果您需要其他格式,那么最好使用momentjs。