如何在保持本地日期的同时做date.toString?

时间:2017-04-05 12:30:32

标签: javascript angularjs string date

我已经使用此代码将日期js对象序列化为字符串

但是对于April 12th日期,它已翻译为April 11t

self.dateToString = function (date) {
                    return (date === null || !(date instanceof Date)) ? null : date.toISOString().slice(0, 10);
                    //return (date === null || !(date instanceof Date)) ? null : dateFormat(date, "dd mmmm yyyy");
                }

我该如何解决这个问题?

enter image description here

2 个答案:

答案 0 :(得分:0)

首先设置timezone = UTC然后 只需通过传递日期 -

即可向控制器添加功能
function dateToString (date){
     var d = new Date(date),
     month = '' + (d.getMonth() + 1),
     day = '' + d.getDate(),
     year = d.getFullYear();

 if (month.length < 2) month = '0' + month;
 if (day.length < 2) day = '0' + day;

 return [year, month, day].join('-');

}

它将返回日期..

它对我有用:)

答案 1 :(得分:0)

您正在使用Angular和Angular有一个很好的小过滤器,可以很好地解析JavaScript日期。

&#13;
&#13;
(function() {
	'use strict';
  
  angular.module('myApp', []);
  
  angular.module('myApp').controller('MyController', MyController);
  
  MyController.$inject = ['$filter'];
  function MyController($filter) {
  	var vm = this;
    vm.doMagic = function() {
    	return vm.dateToString(new Date("04/12/2017"));
    }
    vm.dateToString = function (date) {
      return (date === null || !(date instanceof Date)) ? null : $filter("date")(date, "dd MMMM yyyy");
    }
  }
  
}());
&#13;
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.3/angular.min.js"></script>
<html>
<body ng-app="myApp">
  <div ng-controller="MyController as main">
    {{main.doMagic()}}
  </div>
</body>
</html>
&#13;
&#13;
&#13;