【发布时间】:2015-07-18 05:05:20
【问题描述】:
我需要一些帮助来根据浏览器的语言验证 Javascript 中的日期时间字符串。
我可以很容易地获得日期时间格式,例如,如果语言设置为 pt-BR 格式将是
dd/MM/yyyy HH:mm:ss
我尝试使用这样的东西:
var dateFormat = "dd/MM/yyyy HH:mm:ss";
var x = Date.parseExact($("#theDate").val(), dateFormat);
但是 x 始终为 Null。我在想,因为 Date.parseExact 不能做时间。我需要能够为所有浏览器语言执行此操作,并且我不想使用其他库。使用正则表达式也不行,因为我需要编写很多不同的表达式。
有没有人有任何建议可以帮助我走上正轨?我也不反对使用网络方法。
我尝试使用以下 webmethod,它适用于 en-US,但没有别的:
Public Function ValidateDates(ByVal strDate_In As String) As String
Dim theFormat As String = CultureInfo.CurrentCulture.DateTimeFormat.ShortDatePattern() + " " + CultureInfo.CurrentCulture.DateTimeFormat.LongTimePattern()
Try
Dim d As DateTime = DateTime.ParseExact(strDate_In, theFormat, CultureInfo.CurrentCulture)
Return "true"
Catch ex As Exception
Return "false"
End Try
End Function
【问题讨论】:
-
JavaScript 通常不理解本地日期,因此您必须以某种方式自己解析它。您如何获得本地日期格式的开头?
-
我正在使用全球化文化。这是一个 asp.net 网络应用程序,我也可以通过 vb.netcultureinfo 获得它。我也必须使用此日期格式以正确的格式显示日期。我们使用 datetimepickers 来选择日期,但是我们希望用户也能够输入日期,这就是问题所在。有些国家如 dd/mm/yyyy 有些是 dd.mm.yyyy 等。部分问题还在于时间在同一个输入框中。我什至尝试过使用使用 vb.net 的 DateTime.ParseExact 的网络方法,但我似乎也无法让它工作。
-
所以用ajax将日期发送到服务器并在那里解析成时间戳
-
查看我对我尝试的网络方法的编辑。
标签: javascript asp.net vb.net