javascript - Angular Bootstrap DatePicker UTC wrong output -
hello using angular datepicker in application working how supposed be. try working utc time , datepicker inited value:
scope.model.value = moment.utc().startof('day').todate()   this result in date:
tue oct 27 2015 01:00:00 gmt+0100 (mitteleuropäische zeit)   if want choose date e.g.: 1st june 2016 result of scope.model.value is:
"2016-05-31t23:00:00.000z"   why datepicker changing date object format? how can take care off output format? , why date 31st may when selecting 1st june?
i have tried several approaches removing utc time information. example: (https://gist.github.com/weberste/354a3f0a9ea58e0ea0de):
(function () { 'use strict';  angular .module('myapp') .directive('datepickerlocaldate', ['$parse', function ($parse) {   var directive = {     restrict: 'a',     require: ['ngmodel'],     link: link   };   return directive;    function link(scope, element, attr, ctrls) {     var ngmodelcontroller = ctrls[0];      // called javascript date object when picked datepicker     ngmodelcontroller.$parsers.push(function (viewvalue) {       // undo timezone adjustment did during formatting       viewvalue.setminutes(viewvalue.getminutes() - viewvalue.gettimezoneoffset());       // want local date in iso format       return viewvalue;     });      // called 'yyyy-mm-dd' string format     ngmodelcontroller.$formatters.push(function (modelvalue) {       if (!modelvalue) {         return undefined;       }       // date constructor apply timezone deviations utc (i.e. if locale behind utc 'dt' 1 day behind)       var dt = new date(modelvalue);       // 'undo' timezone offset again (so end on original date again)       dt.setminutes(dt.getminutes() + dt.gettimezoneoffset());       return dt;     });   } }]) })   for coriuos here snippet how using picker:
<datepicker datepicker-localdate ng-model="model.value" min-date="mindate"></datepicker>   maybe can help!
in app config can tell globally how want dapicker output format be. eg :
datepickerpopupconfig.datepickerpopup = 'dd/mm/yyyy';   doc here: angular boostrap datepicker doc
given app name "myapp":
angular.module('myapp', [     'ui.bootstrap' ]) .config(function(         datepickerpopupconfig     ) {          datepickerpopupconfig.datepickerpopup = 'dd/mm/yyyy';      } );      
Comments
Post a Comment