2014-10-29 142 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; 
});