2017-05-11 24 views
0

私はtrip.startにangularjsで問題私は<input type="date" ng-model="trip.start">を使用するときに、私はtrip.start内のデータが2017-5-10だと思いますが、データを持っているが、時間なしtrip.startだけyyyy-mm-ddを解析する方法2017-5-10T17:00:00.000Z入力タイプ= "日付"の日付を解析する方法は?

です。

あなたがそれを解析する考えがあれば助けてください。あなたが行うことができます

+0

データを取得した後にコントローラーでトリムする必要があります – geminiousgoel

+0

データを取得した後にコントローラーで調整する例があります – Nugka

+0

私はチュートリアルのリストを持っていませんが、$ scopeを使用することができます。 trip.start.getFullYear()はyearとsimillarlyを取得し、.getMonth()と.getDate()は月と日付を取得し、最後は完全日付を連結します。または、必要な結果を得るためにangularjsで利用できるいくつかのフィルターを使用することができます。 – geminiousgoel

答えて

1

私は日付フォーマットのための瞬間を使用することをお勧めします。サーバーからデータを取得した後:

$scope.trip.start = moment($scope.trip.start).format("YYYY-MM-DD"); 

これを行うには、Moment.jsライブラリを含めます。

+0

'$ trip.start' eh? ;-) – tanmay

+0

ありがとう@tanmay – Jenny

+0

私はあなたのコードを使用するとエラーが表示されます、私の入力は表示されません – Nugka

0

var date = trip.start.split("T")[0] 

あなたは、予想される結果を取得します。

1
The ng-model data must be a Date Object. 

入力ボックスに日付が表示されます。あなたがフォーマットされた日付を表示したい場合は は、あなたはあなたの入力ボックスにあなたのコントローラとバインド$ scope.formattedDateで依存関係としてthis-

$scope.formattedDate = $filter('date')($scope.trip.start, "your date format"); 

追加$フィルターのような何かを行うことができます。

0

データを完全に解析する方法はわかりませんが、データを使用しているときに日付フィルタを試してみてください。この 構文ような何か:あなたのケースで

{{ date_expression | date : format : timezone}} 

:複数の基準については

{{trip.start | date: 'yyyy-MM-dd'}} 

here

0

あなたの日付値は、JavaScriptの日付であるように思わドキュメントを参照してください。アンギュラすでにフォーマットされた日付の出力用のフィルタが用意されています

{{trip.start | date:'yyyy-MM-dd'}} 

はまた、あなたが日付を文字列に変換することができます:

function formatDate(date) { 
     var date = date || new Date(); 
     var today = new Date(date); 
     var dd = today.getDate(); 
     var mm = today.getMonth() + 1; //January is 0! 
     var yyyy = today.getFullYear(); 
     if (dd < 10) dd = '0' + dd; 
     if (mm < 10) mm = '0' + mm; 
     return (yyyy + '-' + mm + '-' + dd); 
}