我试图为PHP设置用户的时区偏移量,通过ajax发送。页面已加载会话数据。如果没有数据,则会将其放入页面中:
<script type="text/javascript">
$(document).ready(function() {
var visitortime = new Date();
visitortime.setMonth(1);
var visitortimezone = visitortime.getTimezoneOffset()*60;
$.ajax({
url: "/ajax/timezone/set/"+ visitortimezone,
success: function(){
location.reload();
}
});
});
</script>
没有visitortime.setMonth(1);
它运行正常并返回正确的偏移量。但有了它,它只返回0。
我希望能够在没有DST的情况下获得时区偏移,然后在PHP端运行DST检查。
答案 0 :(得分:1)
我设法用这段代码修复它:
Date.prototype.stdTimezoneOffset = function() {
var jan = new Date(this.getFullYear(), 0, 1);
var jul = new Date(this.getFullYear(), 6, 1);
return Math.max(jan.getTimezoneOffset(), jul.getTimezoneOffset());
}
Date.prototype.dst = function() {
return this.getTimezoneOffset() < this.stdTimezoneOffset();
}
$(document).ready(function() {
var visitortime = new Date();
var visitortimezone = visitortime.getTimezoneOffset()*60;
if(visitortime.dst()){
visitortimezone = visitortimezone + 60*60;
}
$.ajax({
type: "GET",
url: "/ajax/timezone/set/"+ visitortimezone,
success: function(){
location.reload();
}
});
});
在此处找到:Check if Daylight Saving Time is in effect, and if it is for how many hours。