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