2016-11-10 15 views
3

私は、定義された最小および最大の日付がうまくいき、ユーザーの誕生日を取得したいと考えています。 そして、私が望む日付の形式はDD-MM-YYYYです。これはconfigで次のように定義しています。角度材料日付ピッカーフィールド値空

app.config(['$mdDateLocaleProvider', function ($mdDateLocaleProvider) { 
     $mdDateLocaleProvider.formatDate = function(date) { 
     return moment(date).format('DD-MM-YYYY'); 
     }}]); 

とコントローラが

$scope.user = {}; 
    $scope.user.dob = new Date(); 
    $scope.maxDate = new Date(
     $scope.user.dob.getFullYear() - 10, 
     $scope.user.dob.getMonth(), 
     $scope.user.dob.getDate() 
    ); 
    $scope.minDate = new Date(
     $scope.user.dob.getFullYear() - 120, 
     $scope.user.dob.getMonth(), 
     $scope.user.dob.getDate() 
    ); 

を有し、HTMLです。このコードで

<md-datepicker 
ng-model="user.dob" 
md-placeholder="Enter date of birth" 
md-min-date="minDate" 
md-max-date="maxDate"> 
</md-datepicker> 

フィールドには、私はしたくない、デフォルトで現在の日付を示し、

私は、日付フィールドはデフォルトでは空になりたいです。 1)日 - 月 - 年 そして 2)日 - 月 - 年

時間 - 分 - 秒iが値を取得しようと、次のように

はまた、私は両方の方法で値を取得したいですこの ":30:00.000Z 09-11-2016T18" を示し

私はこの問題は、あなたのNGである "2016年9月11日" または "2016年9月11日午後6時30分00秒" のいずれか

+0

設定ブロックで書かれたコードを削除すると、フィールド値に日付は表示されませんが、これによって特定の日付形式を設定できなくなります。 –

答えて

4

あなたmdDateLocaleProvider doesntのチェック);

$scope.user.dob = new Date(); 

単に空のこの変数を、あなたが良いでしょう:あなたは、現在の日付でそれを初期化しています。

あなたの問題は次のとおりです。

app.config(['$mdDateLocaleProvider', function ($mdDateLocaleProvider) { 
    $mdDateLocaleProvider.formatDate = function(date) { 
    return moment(date).format('DD-MM-YYYY'); 
    }}]); 

それはのようなものである必要があります:

$mdDateLocaleProvider.formatDate = function(date) { 
    var m = moment(date); 
    return m.isValid()? m.format('DD-MM-YYYY') : ''; 
}; 

次にあなたが

$scope.user.dob=null; 

を設定し、空の日付ピッカーを得ることができます。

1

たい - モデル。 null値のため

+0

私は$ scope.user.dob = ""を試しました。 $ scope.user.dob = nullです。どちらも "無効な日付"と$ scope.user.dob = undefinedになります。現在の日付を示します –

関連する問題