gpt4 book ai didi

c# - 相当于 .NET 的 DateTime.Parse 的 Javascript

转载 作者:可可西里 更新时间:2023-11-01 02:41:23 25 4
gpt4 key购买 nike

我正在尝试构建一个验证器,该验证器将与 .NET 的 DefaultModelBinder 一起使用,使用 DateTime.Parse 将字符串从表单发布转换为 DateTime。我不想等到日期发布到服务器后才意识到这是一个糟糕的日期。

目前 jquery.validate 使用以下代码来验证日期字段:

// http://docs.jquery.com/Plugins/Validation/Methods/date
date: function(value, element) {
return this.optional(element) || !/Invalid|NaN/.test(new Date(value));
}

但是,由于 Javascript 糟糕的日期解析器,这:

275481/69/100089

将评估为有效,至 275760 年 9 月 12 日。

另一方面,这:

11-19-2013

将评估为无效

当然,我知道 C# 的 DateTime.Parse() 会考虑文化(本地化)和闰年等因素,我可以接受假设固定的(美国)文化并允许“02-29-2013”在客户端上并将其踢出服务器(理想情况下不这样做,但这是可以接受的)。

但我不敢相信有人没有将更好的日期验证器与 C# 的 DateTime.Parse() 逻辑结合使用。

也许有人找到了,我只是没找到——这就是我在这里发帖的原因。

而且我知道我有几种方法可以解决这个问题——从难以置信的简单(不太准确)到难以置信的复杂(更准确),但我希望有人已经沿着这条路走下去并找到了最佳点。

最佳答案

Datejs对我来说似乎很健壮。它的parse功能支持超过 150 种文化:

Date.parse("February 20th 1973")

如果您需要解析在当前文化中无效的日期字符串,您可以使用 parseExact功能:

// The Date of 15-Oct-2004
Date.parseExact("10/15/2004", ["M/d/yyyy", "MMMM d, yyyy"]);

关于c# - 相当于 .NET 的 DateTime.Parse 的 Javascript,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13462687/

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