我想在页面中显示照片的上传日期,但是我只能根据服务器时区显示日期。
请允许我在格林尼治标准时间5:19在家里12号上传照片,因此服务器在00:30注册了13号。
我想要的是检索用户已知的日期(12月19日30:30)。
我要做的是获取客户端的时区,并将该分钟数保持在对象Date上,就像这样:
upload_date = response.upl_date;//This is the date I get from server (12:30)
var d = new Date();//Here I get the current date of client...
var timezone = d.getTimezoneOffset();//...to get the timezone offset in minutes (300)
var dd = new Date(upload_date);//Here I turn my server date into an object
dd.setMinutes(dd.getMinutes() - timezone);//Substract the minutes to the hour of the object
console.log(dd);//And voilá, I get 19:30, but the day keeps being 13
尽管分钟会影响对象日期的小时数,但不会影响日期,因此它始终是第13位而不是第12位。
例如,当它在服务器端为19:00,在客户端为14:00时,它当然可以完美工作,但是我该如何更改日期以适应时区变化呢?我应该尝试其他方式吗?还是if(){}的一些技巧?
答案 0 :(得分:0)
我希望这对您有帮助:
var options = {
timeZone: "America/New_York", //you can use any timezone here
year: 'numeric',
month: 'numeric',
day: 'numeric',
hour: 'numeric',
minute: 'numeric',
second: 'numeric'
};
var formatter = new Intl.DateTimeFormat([], options);
var UTCTime = "2017-09-03T02:00:00Z";
var localTime = formatter.format(new Date(UTCTime));
var currentTime = formatter.format(new Date());
console.log(currentTime, localTime);