如何使用普通的 JavaScirpt Date 对象获取 3 个字母的星期几和 3 个字母的月份?

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

我需要为“六月”获取“Jun”,为“周一”获取“Mon”。问题是,如果用户将语言设置为英语以外的任何语言,则在英语单词对象中查找将不起作用。

export const shortDate = (str: any) => {
    const d = new Date(str);
    const dateString =
        daysOfWeek[d.getDay()].toUpperCase() +
        ', ' +
        shortMonths[d.getMonth()] +
        ' ' +
        d.getDate() +
        nth(d.getDate());

    return dateString;
};

我需要删除

shortMonths
对象和
dayOfWeek
,因为当用户不是英语使用者时,这会有所不同。

javascript date
2个回答
3
投票

查看Intl.DateTimeFormat

var date = new Date();

var options = { weekday: 'short', month: 'short' };
console.log(new Intl.DateTimeFormat('en-US', options).format(date));

或者正如上面塞巴斯蒂安指出的

date.toLocaleString

const date = new Date()

console.log(date.toLocaleString('en-US', { weekday: 'short' }))
console.log(date.toLocaleString('en-US', { month: 'short' }))


0
投票

函数removeDayNameFromFormattedDate(formattedDate) { const dayOfWeekPattern = /^[A-Za-z]+,\s*/ formattedDate.replace(dayOfWeekPattern, '')

const 月份名称模式 = /([A-Za-z]+)\s/; formattedDate.replace(monthNamePattern, (match, MonthName) => MonthName.substr(0, 3) + ' '); 返回格式化日期 } 从格式化日期中删除DayName(星期三,2024 年 11 月 30 日)

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