web-dev-qa-db-ja.com

日付文字列を日付オブジェクトに変換するAngularJS / javascript

私は問題で立ち往生し、助けをいただければ幸いです。私はすでに多くの議論を読んだことがありますが、私には役に立たないようです。

//I have a date as a string which I want to get to a date format of dd/MM/yyyy
var collectionDate = '2002-04-26T09:00:00'; 

//used angularjs date filter to format the date to dd/MM/yyyy
collectionDate = $filter('date')(collectionDate, 'dd/MM/yyyy'); //This outputs 26/04/2002 as a string

日付オブジェクトに変換するにはどうすればよいですか?これを行う理由は、列の1つを日付にする必要があるGoogleチャートディレクティブで使用するためです。列タイプを文字列にしたくない:

例えば:

var data = new google.visualization.DataTable();
                    data.addColumn('date', 'Dates');
                    data.addColumn('number', 'Upper Normal');
                    data.addColumn('number', 'Result');
                    data.addColumn('number', 'Lower Normal');
                    data.addRows(scope.rows);.................
26
aliaz

これは私がコントローラーでやったことです

var collectionDate = '2002-04-26T09:00:00';
var date = new Date(collectionDate);
//then pushed all my data into an array $scope.rows which I then used in the directive

私は最終的に、次のようにディレクティブの希望するパターンに日付をフォーマットしました。

var data = new google.visualization.DataTable();
                    data.addColumn('date', 'Dates');
                    data.addColumn('number', 'Upper Normal');
                    data.addColumn('number', 'Result');
                    data.addColumn('number', 'Lower Normal');
                    data.addRows(scope.rows);
                    var formatDate = new google.visualization.DateFormat({pattern: "dd/MM/yyyy"});
                    formatDate.format(data, 0);
//set options for the line chart
var options = {'hAxis': format: 'dd/MM/yyyy'}

//Instantiate and draw the chart passing in options
var chart = new google.visualization.LineChart($Elm[0]);
                    chart.draw(data, options);

これにより、グラフのx軸にdd/MM/yyyy(26/04/2002)の形式の日付が表示されました。

6
aliaz

これを試して

html

<div ng-controller="MyCtrl">
  Hello, {{newDate | date:'MM/dd/yyyy'}}!
</div>

JS

var myApp = angular.module('myApp',[]);

function MyCtrl($scope) {
    var collectionDate = '2002-04-26T09:00:00'; 

    $scope.newDate =new Date(collectionDate);
}

デモ

39
Jorge Casariego

私はこれがin上記の答えであることを知っていますが、私のポイントはallあなたが必要だと思うことです

new Date(collectionDate);

目的が日付文字列を日付に変換することである場合(OP「日付オブジェクトに変換するにはどうすればよいですか?」に従って)。

9
Gary
//JS
//First Solution
moment(myDate)

//Second Solution
moment(myDate).format('YYYY-MM-DD HH:mm:ss')
//or
moment(myDate).format('YYYY-MM-DD')

//Third Solution
myDate = $filter('date')(myDate, "dd/MM/yyyy");
<!--HTML-->
<!-- First Solution -->
{{myDate  | date:'M/d/yyyy HH:mm:ss'}}
<!-- or -->
{{myDate  | date:'medium'}}

<!-- Second Solution -->
{{myDate}}

<!-- Third Solution -->
{{myDate}}
5