2015-01-04 35 views
1
$scope.notAvailableDayClick=function(val1,date){  
     console.log("day clcik") 
     var startDate=$filter('date')(date,'yyyy-MM-dd') 
     var endDate=new Date(startDate) 
     endDate.setMinutes(59) 
     endDate.setHours(23) 
    } 

日期在新的日期(日期)錯誤是2015年1月16日 如果我這樣做的getTime()在AngularJS,在Java腳本

new Date(date) 

Thu Jan 15 2015 16:00:00 GMT-0800 (Pacific Standard Time) 

所以我必須去與AngularJS

var startDate=$filter('date')(date,'yyyy-MM-dd') 

但現在我需要startDate.getTime(),錯誤發生,我認爲它需要的是一個字符串

+1

['Date'構造](https://developer.mozilla.org/en-US/docs/ Web/JavaScript/Guide/Predefined_Core_Objects#Date_Object)需要字符串參數,格式如下:'MM-dd-yyyy'。 'yyyy-MM-dd'形式是不可接受的。 – hindmost

+0

您的答案工作謝謝 – abhaygarg12493

回答

2

最好的選擇是使用ISO-String,因爲Google Chrome支持這種格式:MM-d d-YYYY。在Mozilla中,這種格式給出無效日期。

new Date('MM-dd-yyyy') 

因此,使用異字符串在角,如下它可以做到:

new Date($filter('date')(yourdDate,'yyyy-MM-ddTHH:mm:ss.sssZ')) 
2

只需使用鄰riginal日期創建endDate不角濾波版本

var endDate=new Date(date); 
endDate.setMinutes(59); 
endDate.setHours(23); 
3

作爲每角docs過濾器返回在請求格式的StringDateconstructor通常接受ISO8601格式,雖然一些瀏覽器支持很多格式,我記得。可能您的格式yy-MM-dd不受支持。

我希望變量date是一個有效的Date對象,在這種情況下,爲什麼不使用它而不是使用角度過濾器製作的格式化字符串?

var endDate = new Date(date); 
endDate.setMinutes(59); 
endDate.setHours(23); 

還你一個Date構造函數接受格式

new Date(year, month[, date[, hour[, minutes[, seconds[, milliseconds]]]]]); 

所以,如果你手上有什麼2015-01-16你可以半夜了一天中:

var startDate = "2015-01-16"; 
var year = parseInt(startDate.split('-')[0], 10); 
var month = parseInt(startDate.split('-')[1], 10) - 1; 
var year = parseInt(startDate.split('-')[2], 10); 
var endDate = new Date(year, month, date, 23, 59);