0

In AngularJs I get a date in this format : ["2018-01-03T09:30:54.264Z"]. I want it to be in the format : "2018-01-03T09:30:00" How can I get it in this format?

Controller.js

var myDate = new Date();
$scope.form.date.push(myDate);

template

<div class="col-lg-12 photo-container" ng-repeat="photo in selectedPhotos track by $index" ng-if="add">
            <input id="myDate" type="datetime-local" name="date[]" ng-model="form.date[$index]">
            <img ng-src="{{photo}}" class="thumb">
        </div>

3 Answers3

1

You are not being clear about how you are doing it, but here is a working example (work from it):

var app = angular.module('myApp', []);
app.controller('dateCtrl', function($scope) {

  $scope.form = {
    "date": []
  };
  for (let i = 0; i < 5; i++) {
    var myDate = new Date();
    $scope.form.date.push(myDate);
  }

});
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.4/angular.min.js"></script>

<body>

  <div ng-app="myApp" ng-controller="dateCtrl">

    <div ng-repeat="date_ in form.date track by $index">
      <div>1: {{ date_ | date : 'yyyy-MM-ddThh-mm-ss' }}</div>
      <div>2: {{ form.date[$index] | date : 'yyyy-MM-ddThh-mm-ss' }}</div>
      <br/>
    </div>

  </div>
</body>

</html>
Aleksey Solovey
  • 4,153
  • 3
  • 15
  • 34
0

you can use moment.js to achieve that i.e.

var d = moment("2018-01-03T09:30:54.264Z").format('YYYY-MM-DDThh:mm:ss') . 

it will give you the required format, put whatever format you want as string in format() function.

0

first inject $filter to your controller then try this:

var myDate = new Date();
myDate = $filter('date')(myDate , "YYYY-MM-DDThh:mm"); 
$scope.form.date.push(myDate);
Aref Zamani
  • 2,023
  • 2
  • 20
  • 40