如何将javascript中的日期格式设置为DD-MMM-YYYY? [重复]

问题描述 投票:0回答:3

因此后端向 FE 提供的日期为:'2019-05-30T00:00:00.000Z'

我正在尝试在 FE 上渲染为 2019 年 5 月 30 日

所以...

let date = new Date( Date.parse('2012-01-26T13:51:50.417-07:00') );

我一直在尝试使用 MDN Javascript Date 文档

但是如何开始修改 Date 对象并控制所需的输出呢?

javascript date datetime-format
3个回答
13
投票

我设法为此创建了一个工作函数:

function formatDate(value) {
    let date = new Date(value);
    const day = date.toLocaleString('default', { day: '2-digit' });
    const month = date.toLocaleString('default', { month: 'short' });
    const year = date.toLocaleString('default', { year: 'numeric' });
    return day + '-' + month + '-' + year;
}

formatDate('2019-05-30T00:00:00.000Z') // 30-May-2019

1
投票

这使用

toLocaleString()
方法来获取月份名称,否则您将需要一个月份名称数组来匹配
date.getMonth()
的输出,这只是数字(0 索引)(例如 1 月将为 0)

const monthNames = ["January", "February", "March", "April", "May", "June",
  "July", "August", "September", "October", "November", "December"
];

month = monthNames[date.getMonth()];

let date = new Date( Date.parse('2012-01-26T13:51:50.417-07:00') );

console.log(`${date.getDate()}-${date.toLocaleString('default', { month: 'long' })}-${date.getFullYear()}`);

另一种方法是使用

toLocaleString()
进行其余的格式设置:

let date = new Date( Date.parse('2012-01-26T13:51:50.417-07:00') );

dateFormatted = date.toLocaleString('default',{day: 'numeric', month: 'long', year: 'numeric'});
console.log(dateFormatted);

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleString

https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Intl/DateTimeFormat/DateTimeFormat


1
投票
function formatDate(dateString) {
let date = new Date(dateString),
    day = date.getDay(),
    month = date.getMonth(),
    year = date.getFullYear(),
    months = ['January','February','March','April','May','June','July','August','September','October','November','December'];
      
return day + '-' + months[month] + '-' + year;
}

预定义函数和数组。

© www.soinside.com 2019 - 2024. All rights reserved.