Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/479.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 上套管月份,单位为力矩js_Javascript_Momentjs - Fatal编程技术网

Javascript 上套管月份,单位为力矩js

Javascript 上套管月份,单位为力矩js,javascript,momentjs,Javascript,Momentjs,我通过设置以下属性更改了区域设置: moment.locale(chosenLocale); 一切似乎都很好。我根据所选的区域设置获取月份名称和工作日名称。我还得到了周数等的正确计算 使用默认(英语)语言环境,我可以得到月份名称,如一月、二月等。我还可以得到工作日名称,如星期一、星期二等。出于某种原因,使用丹麦语言环境,我可以将所有这些名称小写。当格式化一个简单的工作日时,我可以将第一个字母大写,但对于一些更高级的格式,名称可能会互换顺序(1月1日vs.1.Januar),我不能将第一个字母大

我通过设置以下属性更改了区域设置:

moment.locale(chosenLocale);
一切似乎都很好。我根据所选的区域设置获取月份名称和工作日名称。我还得到了周数等的正确计算

使用默认(英语)语言环境,我可以得到月份名称,如一月、二月等。我还可以得到工作日名称,如星期一、星期二等。出于某种原因,使用丹麦语言环境,我可以将所有这些名称小写。当格式化一个简单的工作日时,我可以将第一个字母大写,但对于一些更高级的格式,名称可能会互换顺序(
1月1日
vs.
1.Januar
),我不能将第一个字母大写

我使用此格式显示月份名称和月份的日期:

moment().format('dddd LL')
在丹麦语中我得到
7。marts 2016
但我真的想要
7。Marts 2016
。请记住,我需要在所有地区都能工作的解决方案,所以我不能硬编码月份名称,或者我可以吗?我尝试了以下方法:

moment.locale(chosenLocale);
var __months = moment.months().map(function (m) { return m.toUpperCase() + "TEST"; });
moment.locale(chosenLocale, {
    months : __months
}); 
我希望(出于测试目的)得到丹麦语言环境的
JANUARTEST
,但我得到
JANUARTEST
,这暗示框架在其他地方应用了小写。我还尝试根据api文档将
months
属性设置为函数,然后返回缓存的month数组的大写值,结果与前面描述的相同

有人能解决这个问题吗

由于某种原因,在丹麦地区,我把所有这些名字都用小写字母表示

这是有充分理由的。在丹麦语中,月份的名称不大写。许多语言不大写月份或工作日的名称,包括西班牙语、法语、意大利语、俄语

moment.js中的每个语言环境文件都至少由一个母语为该语言的人“拥有”。通常,您不应该尝试在自己的代码中更正大写字母。如果您觉得特定区域设置有错误,我们可以从区域设置所有者处获取输入

注意,我们收到了一些请求,要求提供替代的大小写版本,以用于例外情况:1)句子开头,或2)在列标题中单独使用时。是否大写(特别是在第二种情况下)在不同语言之间可能会有很大的差异。到目前为止,矩并没有提供任何区别,它总是针对一般情况

这就是说,我在当前版本(2.12.0)上尝试了您的代码,它确实有效,因此您可能使用的是一个处理方式不同的旧版本。但是,我确实收到了一个弃用警告,因为您应该使用
updateScale
方法修改现有的区域设置,因此您的代码应该按如下方式更改:

moment.updateLocale(chosenLocale, { months : __months });

尽管如此,出于上述原因,我还是建议您不要这样做。

您可以尝试一下CSS:

.selector.to.lowercase.element{
文本转换:大写;
}

如果您有该选择器,则应将任何字符串大写

只需使用.toUpperCase()

例如:

目标日期:{时刻(“20年1月10日”).format('DD-MMMM-YYYY').toUpperCase()}
这将返回:
“目标日期:2020年1月10日”

我的西班牙语版本与查尔斯·马丁用法语报道的版本相同。 如果有人曾经用小写字母将月份和日期的名称翻译成西班牙语,那么他应该选择将第一个字母写成大写字母,就像英文一样

使用此修复程序,如果需要,可以相对容易地将所有
.toLowerCase()
转换为

.format('dddddd,DD[de]MMMM')
中,仅将周和月的第一个字母转换为大写字母是不可能的,要将其转换到外部,请使用另一个函数来拆分、大写第一个字母和联合以处理结果

在实现修复之前,我将坚持使用建议的解决方案来动态更新区域设置

moment.locale('es');
var meses = 'Enero_Febrero_Marzo_Abril_Mayo_Junio_Julio_Agosto_Septiembre_Octubre_Noviembre_Diciembre'.split('_');
var semanas = 'Domingo_Lunes_Martes_Miércoles_Jueves_Viernes_Sábado'.split('_');
moment.updateLocale('es', { months : meses, weekdays : semanas });

如果你需要的话,还有其他东西需要替换。只需打开locales.js的
瞬间,搜索hooks.defineLocale('es'
)即可查看所有属性,并使用上面介绍的方法从库外更改属性。

任务的要求非常明确-我需要大写月份:(还有我(刚才)下载了最新的并正在调用的updateLocale仍然为我提供了所有小写版本。您是否尝试使用“da”语言环境并能够将月份名称大写?使用moment-with-locales.min.js btwIn-danish有两种常见的时间将月份或天数的名称大写,这正是您提到的场景1)和场景2)。我不知道其他语言,但在法语中,如果需要的话,我们可以大写或月份(例如,如果这是句子的第一个单词)。我完全不明白为什么应该由js库来决定是否有大写字母。图书馆不知道上下文。我在西班牙语中看到了第三种情况,在这种情况下更倾向于大写,它必须更多地处理“视觉”或“设计”问题,即在一个月或一天的名称中同时使用第一个字符或整个单词的大写字母。也许这是一种从英语方法继承下来的趋势?我们可以使用太多的方法来转换mayus中每月的第一个字母,但这是最简单的。非常简单@agbb
moment.locale('es');
var meses = 'Enero_Febrero_Marzo_Abril_Mayo_Junio_Julio_Agosto_Septiembre_Octubre_Noviembre_Diciembre'.split('_');
var semanas = 'Domingo_Lunes_Martes_Miércoles_Jueves_Viernes_Sábado'.split('_');
moment.updateLocale('es', { months : meses, weekdays : semanas });