将javascript日期发送到vb.net日期变量

kk.*_*kk. 3 javascript vb.net asp.net-2.0

我需要将javascript日期值传递给vb.net函数.

方法iam现在使用:将javascript日期转换为字符串将其存储在hiddenfield中从服务器代码中的隐藏字段检索字符串并使用date.parse解析它

麻烦的是Javascript dateformats

toString() - Sat Apr 4 22:19:00 UTC + 0530 2009

toDateString() - 2009年4月4日星期六

toLocaleString() - 2009年4月4日星期六,下午10:19:00

与vb日期格式不匹配.我得到的错误是它的无法解析.

在此先感谢您的帮助

Ant*_*nes 5

使用ToLocaleString的问题在于您丢失了时区信息及其明显的区域设置特定,这意味着您需要使用正确的文化解析它.

我刚在想:-

DateTime d = DateTime.ParseExact(sInput,"ddd MMM d HH:mm:ss UTCzzzz yyyy",CultureInfo.InvariantCulture);

但这不符合跨浏览器(ECMA规范没有定义toString实际应该做什么).

但是我们知道Javascript Date对象的值是从1970年1月1日午夜开始的毫秒数.因此,您可以将日期对象的.valueOf存储在隐藏字段中.首先在字符串上使用Int32.Parse,从该值创建TimeSpan并将其添加到DateTime,1970 00:00:00 UTC + 0000.

int milliseconds = Int32.Parse(inputString);
TimeSpan t = TimeSpan.FromMilliseconds(milliseconds);
DateTime base = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
DateTime result = base + t;
Run Code Online (Sandbox Code Playgroud)