从服务器我得到这种格式的时间" 21/11/2017 17:01:30",这次是在IST。我想将此时间转换为用户当地时间。
我正在使用下面给出的代码,
var startDateTimeArray = eachExeRun.startDate.split(" ");
var startDateArray = startDateTimeArray[0].split("/");
var startDate = new Date(startDateArray[2]+"-"+startDateArray[1]+"-"+startDateArray[0]+' '+startDateTimeArray[1]);
现在我的startDate是" 2017年11月21日星期二16:59:29 GMT + 0530(印度标准时间)"
在html中,我像这样使用
{{startDate | date:'yyyy-MM-dd HH:mm:ss'}}
在此之后测试我的代码我将系统的时区更改为通过时区,然后我的startTime更改为" 2017年11月21日星期二16:59:29 GMT-0800(太平洋标准版)时间)",但在我看来仍然显示" 2017-11-21 16:59:29 "
如何在日期过滤器中不使用时区显示更新时间(日期:' yyyy-MM-dd HH:mm:ss Z')。
答案 0 :(得分:0)
使用moment.js是节拍方式。
但是,您也可以编写自定义过滤器来转换日期。
试试这个:
app.filter('myFormat', function() {
return function(x) {
var startDateTimeArray = x.split(" ");
var startDateArray = startDateTimeArray[0].split("/");
var startDate = new Date(startDateArray[2]+"-"+startDateArray[1]+"-"+startDateArray[0]+' '+startDateTimeArray[1]);
console.log(startDate);
//from timezone
var IST_timezone_offset = -330; // IST timezone offset -always known
var req_UTC_Milliseconds = (IST_timezone_offset * 60000) ;
//to timezone
var local_timezone_offset = startDate.getTimezoneOffset();
var local_UTC_Milliseconds = (local_timezone_offset * 60000);
var final_date = new Date( startDate.getTime() + (req_UTC_Milliseconds - local_UTC_Milliseconds ) );
return final_date;
};
});
答案 1 :(得分:0)
使用momentJs非常简单:
找到以下工作代码段:
<!DOCTYPE html>
<html>
<script src="https://ajax.googleapis.com/ajax/libs/angularjs/1.6.9/angular.min.js"></script>
<script src="https://momentjs.com/downloads/moment.js"></script>
<script src="https://momentjs.com/downloads/moment-with-locales.min.js"></script>
<script src="https://momentjs.com/downloads/moment-timezone-with-data.min.js"></script>
<body>
<h2>My IST to Local System Date Convertor</h2>
<div ng-app="myApp" ng-controller="dateCtrl">
<p>{{convertIstToSystemLocalDateUsingTimeZone(IstStartDate)}}</p>
</div>
<script>
var app = angular.module('myApp', []);
app.controller('dateCtrl', function ($scope) {
$scope.IstStartDate = '21/11/2017 17:01:30';
$scope.convertIstToSystemLocalDateUsingTimeZone = function (incomingISTString) {
return moment.tz(incomingISTString, 'DD-MM-YYYY HH:mm:ss', 'Asia/Kolkata')
.local().format('DD-MM-YYYY HH:mm:ss');
}
});
</script>
</body>
</html>