【问题标题】:Strange conversion of time- and datetime-format in knockout.JSknockout.JS 中时间和日期时间格式的奇怪转换
【发布时间】:2014-12-11 13:32:58
【问题描述】:

我的 SQL Server 数据库中有一个包含两列的表 'whenDateTime' (日期时间,空) “持续时间”(时间(7),空)

从我的 javascript 我调用 JSON 服务

 $.getJSON("myService/GetAllHappenings",
     function (allData) {
         var mappedAction = $.map(allData, function (item) {
              return new Happening(item)
         });
      self.Happenings(mappedAction);

      //... some other code...
 });

在哪里

self.Happenings = ko.observableArray();

在我的浏览器 (Firefox) 中将“myService/GetAllHappenings”作为 URL 检查时,我得到:

<duration>PT1M</duration>
<whenDateTime>2014-11-12T11:26:00</whenDateTime>

在数据库中的值为:

sduration           whenDateTime
00:01:00.0000000    2014-11-12 11:26:00.000

但是当我单步执行 $.getJSON 时,值都可以,直到该行

self.Happenings(mappedAction);

在这行之前 mappedAction 包含数据

"2014-11-12T11:26:00"
"00:01:00"

但是就在这一行之后,数据被转换成

"30.06.2020 11:26"
"00:00"

怎么会这样? 我该如何解决这个问题?

【问题讨论】:

  • 是的,我遇到过这样的情况,有效的解决方法应该是不要使用datetime 类型使用string,这样日期时间将是稳定的(控制器viewmodel)
  • 好建议!谢谢。但是找到了原因:我将变量绑定到输入字段和 Trent Richardsons datetimepicker。我不认为实际的绑定是在逐步找到位置的,但我发现这是 datetimepickers 的“错误”。所以现在我正在为日期和时间实现一个解析器。
  • 祝你好运。在处理日期/日期时间时始终保持谨慎。欢呼
  • @supercool thnxx 遇到同样的错误并解决了

标签: javascript jquery json datetime knockout.js


【解决方案1】:

我认为super cool's answer 不错。我在尝试在 &lt;input type="text"&gt; 元素上实例化 jQuery-UI 日期选择器时遇到了奇怪的问题,当我将它们发送为 datetimes 时,这些元素应该显示 datetimes

【讨论】:

    猜你喜欢
    • 2013-02-21
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-11-26
    • 1970-01-01
    • 2011-08-20
    • 1970-01-01
    相关资源
    最近更新 更多