2014-10-29 140 views
1

我这一次在SQL Server存储:'12:45:00'从时间字符串创建一个momentjs对象返回一个日期对象或字符串

我需要显示这次是在HTML timepicker其希望在以下时间:

Timepicker指令: “NG-模式” 的值必须是

  • Date对象,
  • 因为01.01.1970毫秒数或
  • 代表RFC2822或ISO 8601日期的字符串

如何使用可以将我的值绑定到timepicker的momentjs库?

+0

你不需要moment.js,只需使用Date对象:'new Date(datetime)'。服务器上的时间应该是日期时间格式。 – esp 2014-10-30 00:30:36

+0

我不想将日期时间保存在服务器上,因为它是不必要的。我只有时间。做这个时刻(“08:30:59”)不给我任何东西...... – HelloWorld 2014-11-01 12:14:53

回答

2

我找到了一个解决方案:

moment(endTime,"HH:mm").toDate(); 

这样,我得到的只是时间和日期是隐式创建 - 我不需要 -

0

如果您的Web服务在响应中以字符串的形式返回日期,在大多数情况下,最好使用$http transformer将它们转换为Date对象,您可以更轻松地在JavaScript中使用它们。使用本地JavaScript日期对象意味着您可以始终如一地直接绑定到模型,更轻松地使用$filter,并且操作日期和时间,而不必担心这里或那里的转换。

该变换器在对$http请求的响应中返回的任何数据中查找ISO8601格式的日期,并使用Moment.js验证它们并将它们转换为JavaScript Date对象。

$httpProvider.defaults.transformResponse.push(function (data) { 
    /** 
    * Converts ISO 8601 date strings returned by the web service into 
    * JavaScript Date objects. 
    * @param {Object} obj The server response 
    * @return {Object} 
    */ 
    var convertDateStringsToDates = function (obj) { 
     // Matches format: 2014-07-23T00:00:00 
     var regex = /\d{4}-[01]\d-[0-3]\dT[0-2]\d:[0-5]\d:[0-5]\d/; 
     var name, value, match, dt; 

     for (name in obj) { 
      if (!obj.hasOwnProperty(name)) { continue; } 

      value = obj[name]; 

      // Check for string properties which look like dates 
      if (typeof value === 'string' && (match = value.match(regex))) { 
       dt = moment(match[0]); 

       // confirm parseable by Moment.js 
       if (dt.isValid()) { 
        obj[name] = dt.toDate(); 
       } 
      } else if (typeof value === 'object') { 
       // Recurse into the object 
       convertDateStringsToDates(value); 
      } 
     } 

     return obj; 
    }; 

    // Ignore things that are not objects 
    return typeof data === 'object' ? convertDateStringsToDates(data) : data; 
});