gpt4 book ai didi

javascript - 在 Javascript 中将日期格式化为LocaleDateString

转载 作者:行者123 更新时间:2023-12-03 00:18:13 25 4
gpt4 key购买 nike

我想将本地化日期设置为 dd MMM, yyyy 格式。

Ex. 
In en => 30 Jan, 2019
In fr => 30 janv., 2019
In zh-CN => 30日 1月, 2019年
and so on.

我正在使用 javascript 的 toLocaleDateString() 方法。以下是我的代码:

var dateObj = new Date(parseInt(timestamp));
var date = dateObj.toLocaleDateString(window.userLang, { day: 'numeric', month: 'short', year: 'numeric' });

嗯,它工作正常,但不是我想要的格式。

例如:对于英语,其翻译为 Jan 30, 2019,基于 https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/toLocaleDateString

在 Angular 中,我们可以通过将所需的格式传递给 datePipe.transform() 来实现这一点,如下所示:

import { Pipe, PipeTransform } from '@angular/core';
import { DatePipe } from '@angular/common';

@Pipe({
name: 'dateFormatPipe',
})
export class dateFormatPipe implements PipeTransform {
transform(value: string) {
let datePipe = new DatePipe((<any>window).userLang);
value = datePipe.transform(value, 'dd MMM, yyyy');
return value;
}
}

它将打印我之前提到的输出:

In en => 30 Jan, 2019
In fr => 30 janv., 2019
In zh-CN => 30日 1月, 2019年

javascript/jquery中有没有这样的方法来实现这一点?

最佳答案

如果您想为每种语言强制采用特定格式,toLocaleString 可以帮助处理每个组件的语言部分,然后按照您想要的顺序放置组件,例如

function formatDate(date, langCode) {
var day = date.toLocaleString(langCode, {day: '2-digit'}); // DD
var month = date.toLocaleString(langCode, {month: 'short'}); // MMM
var year = date.toLocaleString(langCode, {year: 'numeric'}); // YYYY
return `${day} ${month}, ${year}`;
}

// Examples
var d = new Date();
['en', // English
'ja', // Japanese
'zh-CN', // Chinese, simplified
'fr', // French
'ar' // Arabic
].forEach(lang => console.log(formatDate(d, lang)));

// Attempt to use prefered browser language
console.log(formatDate(d, navigator.languages));

但是,这可能并不适合所有情况,您仍然需要确定使用哪种语言。您可以尝试navigator.languages ,它是实验性的,但得到了相当好的支持。但是,我不相信它,因为我认为用户很少将其设置为他们想要的值,而只是接受默认值。但是,如果有人使用浏览器,希望他们能够理解浏览器默认语言中的日期,前提是它采用明确的格式(例如 DD MMM、YYYY)。

有很多duplicates用于确定语言,并且某些实现可能不支持某些语言。

PS。有许多不同的用于日期格式化的标记集,我使用了 moment.js 的标记集。 ,还有很多其他的。

关于javascript - 在 Javascript 中将日期格式化为LocaleDateString,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54438906/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com