gpt4 book ai didi

javascript - 使用带有语言环境的 moment.js 解析日期

转载 作者:塔克拉玛干 更新时间:2023-11-02 20:30:30 25 4
gpt4 key购买 nike

当我使用 moment.js 将我的日期从西类牙语翻译成英语时,出现“无效日期”错误(带有语言环境)。奇怪的是,只有某些日期才会失败。

我有一个日期列表,显然格式相同(在使用相同的库之前对它们进行了解析)。然后当我在更改 moment.js 区域设置后再次解析它时(将我的日期翻译成所需的语言)我得到这个:

Enero 13º 2017, 6:00:02 Am --> Invalid date
Abril 17º 2017, 7:36:03 Pm --> Invalid date
Abril 17º 2017, 6:00:01 Am --> Invalid date
Mayo 12º 2017, 2:04:19 Pm --> May 12th 2017, 2:04:19 Pm
Abril 17º 2017, 11:47:17 Pm --> Invalid date

Parse Method(这里初始化format,因为在其他时刻可以得到其他值):

format = 'MMMM Do YYYY, h:mm:ss a';
$(".videoDate").each(function(){
var _text = $(this).text();//Extract initial date
var _date = moment(_text, format).format('MMMM Do YYYY, h:mm:ss a');//format
$(this).text(_date);//new date setting
});

http://jsfiddle.net/gr1zdtag/

也许我遗漏了什么,但我还没有找到原因。谁能帮我解决这个问题?

最佳答案

您可以在解析非英文输入时指定语言环境。您可以使用 moment(String, String, String) :

As of version 2.0.0, a locale key can be passed as the third parameter to moment() and moment.utc().

您可以使用 locale()函数更改给定时刻对象的区域设置(而 moment.locale() 全局更改区域设置)。

这里是一个工作示例:

var format = 'MMMM Do YYYY, h:mm:ss a';
$(".videoDate").each(function(){
var _text = $(this).text();//Extract initial date
//Parse in spanish and convert it in english
var _date = moment(_text, format, 'es')
.locale('en')
.format('MMMM Do YYYY, h:mm:ss a');//format
$(this).text(_date);//new date setting
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.19.3/moment-with-locales.min.js"></script>

<ul>
<li class="videoDate">Enero 13º 2017, 6:00:02 Am</li>
<li class="videoDate">Abril 17º 2017, 7:36:03 Pm</li>
<li class="videoDate">Abril 17º 2017, 6:00:01 Am</li>
<li class="videoDate">Mayo 12º 2017, 2:04:19 Pm</li>
<li class="videoDate">Abril 17º 2017, 11:47:1</li>
</ul>


Mayo 12º 2017, 2:04:19 Pm 被识别是因为默认情况下 moment 使用英语语言环境解析字符串,Moment 的解析器非常宽容Mayo 包含 May 因此它被认为是有效的月份名称(使用 forgiving mode )。

关于javascript - 使用带有语言环境的 moment.js 解析日期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/47728828/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com