2017-04-05 11 views
4

我已經使用這個代碼序列日期JS對象爲字符串,如何在保持當地日期的同時做date.toString?

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

+1

也許,這確實是在UTC時間4月11日。但是你沒有顯示原始日期是什麼(工具提示包含日期的一部分)。但最有可能的是正確的。 – dfsq

+0

它可能是有關你的瀏覽器時區? – ReadyFreddy

+0

@dfsq我只想要日期而不管時區。只是用戶從日期選擇器 –

回答

0

firsly設置時區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('-'); 

}

它將返回的日期..

它爲我工作:)

0

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

(function() { 
 
\t 'use strict'; 
 
    
 
    angular.module('myApp', []); 
 
    
 
    angular.module('myApp').controller('MyController', MyController); 
 
    
 
    MyController.$inject = ['$filter']; 
 
    function MyController($filter) { 
 
    \t var vm = this; 
 
    vm.doMagic = function() { 
 
    \t 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"); 
 
    } 
 
    } 
 
    
 
}());
<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>

相關問題