最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - HTML5 input date format with angular scope - Stack Overflow

programmeradmin1浏览0评论

I have a HTML 5 input type="date".

<input type="date" required ng-model="nm.pick" id="dpicker ">

Then in my angular controller, I am assigning value

nm.pick = $filter("date")(Date.now(), 'dd/MM/yyyy');

Now this will give HTML5 default date format of yyyy-MM-dd.

But I want date format - dd/MM/yyyy

  1. I cannot changed <input type="date"> to <input type="text" in my HTML. If I change, dateformat will work fine
  2. Then I change input date to input text in controller

    $("#dpicker").attr("type", "text");
    nm.pick = $filter("date")(Date.now(), 'dd/MM/yyyy');
    

    which is not working.

Basically I want to change the dateformat to dd/MM/yyyy in controller without altering HTML.

What are all the possible way to achieve this?

I have a HTML 5 input type="date".

<input type="date" required ng-model="nm.pick" id="dpicker ">

Then in my angular controller, I am assigning value

nm.pick = $filter("date")(Date.now(), 'dd/MM/yyyy');

Now this will give HTML5 default date format of yyyy-MM-dd.

But I want date format - dd/MM/yyyy

  1. I cannot changed <input type="date"> to <input type="text" in my HTML. If I change, dateformat will work fine
  2. Then I change input date to input text in controller

    $("#dpicker").attr("type", "text");
    nm.pick = $filter("date")(Date.now(), 'dd/MM/yyyy');
    

    which is not working.

Basically I want to change the dateformat to dd/MM/yyyy in controller without altering HTML.

What are all the possible way to achieve this?

Share Improve this question edited May 25, 2017 at 12:49 user7605325 asked May 25, 2017 at 11:58 ArunArun 6841 gold badge14 silver badges26 bronze badges 2
  • Would you like to use moment? – Jenny Commented May 25, 2017 at 12:01
  • yes definitely.. – Arun Commented May 25, 2017 at 12:02
Add a ment  | 

2 Answers 2

Reset to default 5

The best way that i know is to use momentjs. I have used it with angular 1.x.x with no problems. It's pretty easy to use, check this out. You can add the following row:

nm.pick = moment(nm.pick).format('DD-MM-YYYY');

This should solve your problem,

For type="date" binding

var app = angular.module("MyApp", []).controller("MyCtrl", function($scope, $filter) {
  $scope.nm = {};
  $scope.nm.pick = new Date($filter('date')(new Date(), "yyyy-MM-dd"));
});
<script src="https://ajax.googleapis./ajax/libs/angularjs/1.6.4/angular.min.js"></script>


<body ng-app="MyApp" ng-controller="MyCtrl">
    <input type="date" required ng-model="nm.pick" id="dpicker ">
</body>

Reading other answers, I'd advice the same to go with moment.js as it is an expert library when playing around with date/time and different timezone.

发布评论

评论列表(0)

  1. 暂无评论