【问题标题】:Javascript date from c# DateTime [duplicate]来自c#DateTime的Javascript日期[重复]
【发布时间】:2013-09-08 21:01:18
【问题描述】:

我在从 c# 日期时间创建 js 日期变量时遇到问题。我注意到 jquerys .val() 方法的一些奇怪行为。

输入元素保存日期信息,如下所示:

@Html.HiddenFor(t => t.Tasks[i].Task.Deadline, new { @class = "task-end", @Value = Model.Tasks[i].Task.Deadline.Subtract(new DateTime(1970, 1, 1)).TotalMilliseconds })

在 javascript 中,我正在这样做:

var date = new Date($("MyDateFromHiddenField").val());

将此日期写入控制台会给出无效日期。

如果我将$("MyDateFromHiddenField").val() 写入控制台,我会得到1372854195130

用这个数字硬编码日期会给我一个有效的日期:

var date = new Date(1372854195130); <---Valid

由于某种原因,new Date() 不喜欢 .val() 方法。

示例:http://jsfiddle.net/hZ7bm/1/

【问题讨论】:

  • 您的日期分辨率是多少(天、小时或分钟...等)?您需要毫秒精度吗?

标签: c# jquery asp.net-mvc datetime


【解决方案1】:

输入字段中的值采用 string 数据类型。因此,您必须使用 parseInt(string, radix)Number(string) 将其转换为 integer

var date = new Date(parseInt($("#myhidden").val(), 10));

var date = new Date(Number($("#myhidden").val()));

【讨论】:

  • 啊,谢谢。我知道我遗漏了一些随意的东西。
  • @user2538011 很高兴能提供帮助。
【解决方案2】:

试试这个:

 var date = new Date(parseInt(1372854195130, 10));
  var curr_month = ('0' + (date.getMonth() + 1));
  var curr_date = ('0' + (date.getDate()));
  var curr_year = date.getFullYear();

【讨论】:

    【解决方案3】:

    Date 构造函数的参数应该是数字而不是字符串。按照其他人的建议尝试parseInt,或者可以尝试:

    var date = new Date(+$("#myhidden").val());
    

    + 将字符串转换为数字

    DEMO

    【讨论】:

      【解决方案4】:

      问题在于.val() 返回一个字符串,而new Date() 需要一个数字。您可以将呼叫更新为:

      var date = new Date(parseInt($("#myhidden").val(), 10));
      

      更新版本位于http://jsfiddle.net/hZ7bm/2/

      【讨论】:

        【解决方案5】:

        使用 parseInt 而不是将 .val 返回的字符串传递给 Date 构造函数。

        var date = new Date(parseInt($("MyDateFromHiddenField").val(), 10));
        

        作为字符串无效:

        new Date("1372854195130")
        // Invalid Date
        

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 2013-05-20
          • 2016-08-28
          • 1970-01-01
          • 2010-11-10
          • 1970-01-01
          • 1970-01-01
          • 2012-11-16
          • 2020-08-03
          相关资源
          最近更新 更多