Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/458.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Moment.js:根据浏览器设置日期格式_Javascript_Momentjs - Fatal编程技术网

Javascript Moment.js:根据浏览器设置日期格式

Javascript Moment.js:根据浏览器设置日期格式,javascript,momentjs,Javascript,Momentjs,我使用此代码以法语格式显示日期: var dateToDisplay = moment(myDateInMS, "x").format("DD/MM/YYYY - hh:mm:ss"); // Output : "20/03/2016 - 12:35:32" 我想根据浏览器语言改进此显示,使其具有更好的显示效果。如何使用moment实现这一点?我不建议根据浏览器语言设置语言环境,因为它不是用户实际语言环境的明确信号。例如,即使用户说法语,也可以使用英语操作系统 话虽如此。通过以下方法可以从浏览

我使用此代码以法语格式显示日期:

var dateToDisplay = moment(myDateInMS, "x").format("DD/MM/YYYY - hh:mm:ss"); // Output : "20/03/2016 - 12:35:32"

我想根据浏览器语言改进此显示,使其具有更好的显示效果。如何使用moment实现这一点?

我不建议根据浏览器语言设置语言环境,因为它不是用户实际语言环境的明确信号。例如,即使用户说法语,也可以使用英语操作系统

话虽如此。通过以下方法可以从浏览器读取语言并将Moment.js设置为相应的语言环境:

var localeData = moment.localeData();

switch (navigator.language || navigator.userLanguage) {
    case 'fr':
        localeData = moment.localeData('fr');
        break;
}

localeData.longDateFormat('LL'); // the example 'LL' will output date in "D MMMM YYYY format"
请注意,这是设置整个Moment.js实例的区域设置(这可能是您想要做的)。还要注意,从Moment.js 2.8.0开始,更改全局区域设置不会影响现有实例

也看到


矩将实际搜索从浏览器中提取的区域设置的子字符串,以尝试选择正确的区域设置。因此,无需准备或创建案例陈述。 例如,矩将
es
作为区域设置,而不是
es mx
。如果浏览器设置为
es-mx
,则区域设置功能将查找
es-mx
,如果未找到,则返回到
es
。因此:

moment.locale('es-mx');
"es"
也就是说,出于您的目的,您可以:

moment.locale(navigator.userLanguage || navigator.language);
然后,在格式化日期时,请使用特定于区域设置的格式之一,使其适合用户:

moment().format('LL')
"1 de abril de 2016"
moment().format('L')
"01/04/2016"

有关所有本地化格式及其应产生的内容,请参阅格式文档的本地化格式部分:

localeData.longDateFormat(dateFormat)