以用户的语言环境格式和时间偏移显示日期/时间

以用户的语言环境格式和时间偏移显示日期/时间

我希望服务器始终在HTML中提供UTC日期,并在客户端站点上使用JavaScript将其转换为用户的本地时区。

如果我可以用户的区域设置日期格式输出,则可以获得奖励。



红糖糍粑
浏览 375回答 3
3回答

宝慕林4294392

似乎从UTC日期开始最简单的方法是创建一个新Date对象并使用这些setUTC…方法将其设置为您想要的日期/时间。然后各种toLocale…String方法将提供本地化输出。例:// This would come from the server.// Also, this whole block could probably be made into an mktime function.// All very bare here for quick grasping.d = new Date();d.setUTCFullYear(2004);d.setUTCMonth(1);d.setUTCDate(29);d.setUTCHours(2);d.setUTCMinutes(45);d.setUTCSeconds(26);console.log(d);                        // -> Sat Feb 28 2004 23:45:26 GMT-0300 (BRT)console.log(d.toLocaleString());       // -> Sat Feb 28 23:45:26 2004console.log(d.toLocaleDateString());   // -> 02/28/2004console.log(d.toLocaleTimeString());   // -> 23:45:26一些参考:toLocaleDateStringtoLocaleTimeString使用getTimezoneOffset

一只萌萌小番薯

对于新项目,只需使用moment.js这个问题已经过时了,所以当时并不存在moment.js,但对于新项目,它简化了很多这样的任务。最好从UTC 解析日期字符串,如下所示(在服务器上创建一个ISO-8601兼容字符串,以便在所有浏览器中获得一致的结果):var m = moment("2013-02-08T09:30:26Z");现在只需m在您的应用程序中使用,moment.js默认为本地时区进行显示操作。有许多方法可以格式化日期和时间值或提取部分值。您甚至可以在用户区域设置中格式化一个时刻对象,如下所示:m.format('LLL') // Returns "February 8 2013 8:30 AM" on en-us要将moment.js对象转换为不同的时区(即既不是本地时区也不是UTC),您将需要moment.js时区扩展。该页面还有一些示例,使用起来非常简单。

慕村9548890

您可以使用new Date().getTimezoneOffset()/60时区。还有toLocaleString()一种使用用户的语言环境显示日期的方法。以下是整个列表:使用日期
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript