我刚刚意识到我的代码有很大的问题。我有一个输入,用户在其中输入日期vm.startDate
。
我需要使用这个日期(以毫秒为单位,从url + startDate
起发出请求)。
API服务器托管在UCT +2上,并且我在UCT + 0上的浏览器中,所以我生成的错误日期以毫秒为单位(当我检查ms到在线日期时,小时是错误的)。
如何解决此问题?我是否应该根据服务器的部署时间增加时间?
// By default select the today's date
var todayDate = new Date();
var day = todayDate.getDate();
var month = todayDate.getMonth() + 1;
var year = todayDate.getFullYear();
vm.startDate = day + "." + month + "." + year; // assign default date
$scope.$watch("vm.startDate", function() {
console.log(vm.startDate);
if(vm.startDate != null) {
// Concat 00:00:00 time
var startDate = vm.startDate.split(".");
startDate = new Date(startDate[2], startDate[1] - 1, startDate[0]);
startDate = startDate.getTime(); // Time in ms
console.log("Time in ms: " + startDate);
// Get File In Data
$http.get(url + startDate).then(..... Stuff)
}
请帮助我
答案 0 :(得分:0)
此问题的一般规则是:
与 UTC 一起使用,并仅在表示层上进行转换(前端)
您必须始终发送UTC时间戳,当具有不同区域设置的浏览器需要呈现时,请对其进行转换以反映浏览器的时区。
默认情况下,MomentJS这样的库使用浏览器时区来做到这一点:
默认情况下,时刻对象是在当地时区创建的。