【问题标题】:How to format a Date in MM/dd/yyyy HH:mm:ss format in JavaScript? [duplicate]如何在 JavaScript 中以 MM/dd/yyyy HH:mm:ss 格式格式化日期? [复制]
【发布时间】:2012-05-24 19:56:12
【问题描述】:

可能重复:
Formatting a date in javascript

我知道 JavaScript Date 对象中其他可能的格式,但我没有了解如何将日期格式化为 MM/dd/yyyy HH:mm:ss 格式。

如果您遇到此类问题,请告诉我。

【问题讨论】:

  • 所有方法都在日期对象上。你试过什么?
  • 嗨 Corbin,我尝试了一些预定义的格式,但没有得到 MM/dd/yyyy HH:mm:ss 的预定义格式
  • date.toISOString().replace(/([^T]+)T([^\.]+).*/g, '$1 $2')

标签: javascript date date-format


【解决方案1】:

试试这样的

var d = new Date,
    dformat = [d.getMonth()+1,
               d.getDate(),
               d.getFullYear()].join('/')+' '+
              [d.getHours(),
               d.getMinutes(),
               d.getSeconds()].join(':');

如果您希望值

Number.prototype.padLeft = function(base,chr){
    var  len = (String(base || 10).length - String(this).length)+1;
    return len > 0? new Array(len).join(chr || '0')+this : this;
}
// usage
//=> 3..padLeft() => '03'
//=> 3..padLeft(100,'-') => '--3' 

应用于前面的代码:

var d = new Date,
    dformat = [(d.getMonth()+1).padLeft(),
               d.getDate().padLeft(),
               d.getFullYear()].join('/') +' ' +
              [d.getHours().padLeft(),
               d.getMinutes().padLeft(),
               d.getSeconds().padLeft()].join(':');
//=> dformat => '05/17/2012 10:52:21'

jsfiddle查看此代码

[edit 2019] 使用 ES20xx,您可以使用 template literal 和新的 padStart 字符串扩展名。

var dt = new Date();

console.log(`${
    (dt.getMonth()+1).toString().padStart(2, '0')}/${
    dt.getDate().toString().padStart(2, '0')}/${
    dt.getFullYear().toString().padStart(4, '0')} ${
    dt.getHours().toString().padStart(2, '0')}:${
    dt.getMinutes().toString().padStart(2, '0')}:${
    dt.getSeconds().toString().padStart(2, '0')}`
);

See also

【讨论】:

  • 感谢 Kooilnc,我试过 var d = new Date(); var dformat = [d.getMonth().join('/') + d.getDate().join('/')+ d.getFullYear()].join('/')+' ' +d.getHours ().join(':')+d.getMinutes().join(':')+d.getSeconds()];但我收到“未捕获的语法错误:意外的令牌]”。你知道原因吗?感谢您的帮助
  • 你的代码完全错误(你不能使用d.getMonth().join('/'))。尝试复制/运行我在答案中给出的代码而不更改它。我已经为你添加了一个 jsfiddle 链接
  • 您的示例不正确。他要求 MM/dd,而您提供了格式 dd/MM(欧洲风格)。
  • @JeffFischer 是的,这就是为什么我的回答说“试试 like this”。无论如何,特地为你调整答案。
  • 好的,知道了。它给出了从 0 到 11 的月份。
【解决方案2】:

您始终可以通过提取部分并使用字符串函数组合它们来格式化日期:

var date = new Date();
var dateStr =
  ("00" + (date.getMonth() + 1)).slice(-2) + "/" +
  ("00" + date.getDate()).slice(-2) + "/" +
  date.getFullYear() + " " +
  ("00" + date.getHours()).slice(-2) + ":" +
  ("00" + date.getMinutes()).slice(-2) + ":" +
  ("00" + date.getSeconds()).slice(-2);
console.log(dateStr);

【讨论】:

  • 应该使用 getDate() 作为日期。无法编辑,因为想要编辑超过 6 个字符...叹息。
【解决方案3】:
var d = new Date();

var curr_date = d.getDate();

var curr_month = d.getMonth();

var curr_year = d.getFullYear();

document.write(curr_date + "-" + curr_month + "-" + curr_year);

你可以使用它来格式化日期。

你可以按照你想要的方式改变外观

欲了解更多信息,您可以访问here

【讨论】:

    【解决方案4】:
    var d = 新日期(); //调用函数 格式日期(d,4); 函数格式日期(日期对象,格式) { var monthNames = [“一月”、“二月”、“三月”、“四月”、“五月”、“六月”、“七月”、“八月”、“九月”、“十月”、“十一月”、“十二月” " ]; var curr_date = dateObj.getDate(); var curr_month = dateObj.getMonth(); 当前月份 = 当前月份 + 1; var curr_year = dateObj.getFullYear(); var curr_min = dateObj.getMinutes(); var curr_hr= dateObj.getHours(); var curr_sc= dateObj.getSeconds(); if(curr_month.toString().length == 1) curr_month = '0' + curr_month; if(curr_date.toString().length == 1) curr_date = '0' + curr_date; if(curr_hr.toString().length == 1) curr_hr = '0' + curr_hr; if(curr_min.toString().length == 1) curr_min = '0' + curr_min; if(format ==1)//dd-mm-yyyy { 返回 curr_date + "-"+curr_month+ "-"+curr_year; } else if(format ==2)//yyyy-mm-dd { 返回 curr_year + "-"+curr_month+ "-"+curr_date; } else if(format ==3)//dd/mm/yyyy { 返回 curr_date + "/"+curr_month+ "/"+curr_year; } else if(format ==4)// MM/dd/yyyy HH:mm:ss { 返回 curr_month+"/"+curr_date +"/"+curr_year+ " "+curr_hr+":"+curr_min+":"+curr_sc; } }

    【讨论】:

    • -1,这里的编码真的很糟糕
    猜你喜欢
    • 2015-11-03
    • 2020-10-23
    • 2019-10-15
    • 2013-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多