【问题标题】:javascript - get date format like in php?javascript - 像在 php 中一样获取日期格式?
【发布时间】:2019-09-29 18:28:59
【问题描述】:
<?php echo date('d M Y'); ?>

结果:29 Sep 2019

如此简单,如此优雅!

在 javascript 中似乎没有类似的方法可以做到这一点?

我的尝试:

let d = new Date();

console.log(d.getDate() + ' ' + (d.getMonth()+1) + ' ' + d.getFullYear()); 

结果:29 9 2019

但我需要短月份名称而不是整数。

是的,我看到很多解决方案使用库创建月份名称数组,但我很感兴趣 - 是否有任何原生和核心 javascript方式?

【问题讨论】:

标签: javascript string datetime


【解决方案1】:

您可能正在寻找toLocaleDateString

var options = { year: 'numeric', month: 'short', day: 'numeric' };

let date = new Date()

console.log(date.toLocaleDateString('en-US',options))

【讨论】:

  • 结果 - Sep 29, 2019
  • @qadenza 这取决于指定的语言环境,使用en-GB 表示29 Sep 2019
【解决方案2】:

没有内置的方式。

如果您不想使用库,则必须手动实现此类功能:

const months=['Jan','Feb','Mar','Apr','May','Jun','Jul','Aug','Sep','Oct','Nov','Dec']
const d=new Date()

console.log(`${d.getDate()} ${months[d.getMonth()]} ${d.getFullYear()}`);
//29 Sep 2019

或者,尝试使用.toLocaleString(),但它的返回值取决于实现。

【讨论】:

  • 这是什么意思 - implementation-dependent
  • 它不是用 ECMAScript 标准编写的,可能在不同的浏览器/JS 引擎中返回不同的值
  • @qadenza 它不是用 ECMAScript 标准编写的,可能在不同的浏览器/JS 引擎中返回不同的值
【解决方案3】:

您可以使用toLocaleDateString()

const date = new Date();
const formattedDate = date.toLocaleDateString('en-GB', {
  day: 'numeric', month: 'short', year: 'numeric'
}).replace(/ /g, '-');
console.log(formattedDate);

【讨论】:

    【解决方案4】:

    您可以使用 moment.js 库来执行此操作。

    https://momentjs.com/docs/#/displaying/

    moment().format("D MMM YYYY")
    

    【讨论】:

      猜你喜欢
      • 2011-04-11
      • 1970-01-01
      • 2021-04-03
      • 1970-01-01
      • 1970-01-01
      • 2010-12-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多