关于jquery:如何使用angular 2或javascript从Client Machine获取日期和时间格式?

How to get the Date & Time format From Client Machine using angular 2 or javascript?

1
2
3
4
5
transform(value: any): any {
    var customdate = new DatePipe(navigator.language);
    value = customdate.transform(value,"dd-mm-yyyy");
    return value;
}

我需要在"dd-mm-yyyy"的地方获取客户机器的日期格式。


不幸的是,似乎没有办法从浏览器中获取日期的首选格式。 您可以获得有关用户所在语言环境的特定信息,从中可以获得适当的默认值。 例如,以下代码段使用ECMAScript国际化API(在如何获取本地日期/时间格式之后发布?已被回答):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
console.log(new Intl.DateTimeFormat().resolvedOptions())

/*
On my machine, this outputs:
{
 "locale":"en-US",
 "calendar":"gregory",
 "numberingSystem":"latn",
 "timeZone":"America/New_York",
 "year":"numeric",
 "month":"numeric",
 "day":"numeric"
}
*/

根据该信息,您应该能够使用服务器端语言/框架来构建必要的格式。 例如,在.NET中,使用C#:

1
2
3
4
var culture = System.Globalization.CultureInfo.CreateSpecificCulture("en-US");
var dateTimeInfo = culture.DateTimeFormat;
var formats = dateTimeInfo.GetAllDateTimePatterns();
// formats now contains a list of formats for this culture

只需使用Javascript Date对象获取当前日期即可。

1
var currentDate = new Date();

https://www.w3schools.com/js/js_dates.asp

然后使用toLocaleDateString()函数来获取语言环境格式。

1
console.log(date.toLocaleDateString());

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