AngularJS/javascript преобразование даты String to date object
Я застрял в проблеме и буду признателен за любую помощь. Я уже прочитал много дискуссий, но они, похоже, не работают для меня.
//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
Как мне преобразовать его в объект даты? Причина, по которой я хочу это сделать, - это то, что я хочу использовать ее в директиве google chart, где один из столбцов должен быть датой. Я не хочу иметь тип столбца как строку:
например:
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);.................
Ответы
Ответ 1
Это то, что я сделал на контроллере
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);
Это дало мне даты в формате dd/MM/yyyy (26/04/2002) на оси x диаграммы.
Ответ 2
попробуйте это
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);
}
Демо
Ответ 3
Я знаю, что это в приведенных выше ответах, но я хочу сказать, что все, что вам нужно, это
new Date(collectionDate);
если ваша цель - преобразовать строку даты в дату (в соответствии с OP "Как преобразовать ее в объект даты?" ).
Ответ 4
//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}}