【问题标题】:Saving date() in JSON with AngularJS使用 AngularJS 在 JSON 中保存 date()
【发布时间】:2014-10-13 18:30:00
【问题描述】:

我正在尝试将当前日期(以及其他数据)保存在 LocalStorage 的 JSON 文件中。 到目前为止,我可以保存数据,但 JSON 会将其保存为 ISO 8601 格式:

[{"date":"2014-10-13T17:55:32.953Z"}] 

当我想回调数据并过滤它等等时,这对我来说有点困难。 在解析为 JSON 文件之前,是否有某种方法可以更改 date() 格式(例如,更改为 DD-MM-YYYY)?

这是我当前的代码:

$scope.dateHeader = new Date(); 

$scope.recordlist = extractRecordJSONFromLocalStorage();

$scope.addRecord = function () {
    $scope.recordlist.push({ date: $scope.dateHeader});

    jsonToRecordLocalStorage($scope.recordlist);
};

function extractRecordJSONFromLocalStorage() {
    return JSON.parse(localStorage.getItem("records")) || [

    ];
}
function jsonToRecordLocalStorage(recordlist) {
    var jsonRecordlist = angular.toJson(recordlist);

    if (jsonRecordlist != 'null') {
        localStorage.setItem("records", jsonRecordlist);
    } else {
        alert("Invalid JSON!");
    }
}

提前感谢您向我提出的任何建议!

【问题讨论】:

  • 以后在代码中使用 ISO 8601 有什么难的?将其以该格式存储并在需要在视图中显示时进行转换,而不是在存储时进行转换。除此之外,YYYY-MM-DD 格式无需特殊排序功能即可正确排序,而DD-MM-YYYY 则不会。

标签: javascript json angularjs


【解决方案1】:

试试 Moment JS,我想它会解决你的问题。

有关 momentJS 的信息可以在这里找到:- http://momentjs.com/

【讨论】:

    【解决方案2】:

    你可以使用

    $scope.dateHeader = $filter('date')(new Date(),'dd-MM-yyyy');
    

    【讨论】:

      【解决方案3】:

      我建议您在转换后的字符串中获取日期,以便您在解析时轻松获取,许多 API 也使用这些技术来保存当前日期/时间。 例如:你想把你的日期/时间像

      month date year hr min sec 
      

      然后您将其转换为任何时间标记,以便 java 提供从一个时间戳到另一个时间戳的转换方法。

      例如your date is 13-13-1992 and time is 7:48:78 then your date string will be 726909318 您也可以转换为您喜欢的任何其他时间戳。 Visit This

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2015-03-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-08-08
        相关资源
        最近更新 更多