使用 Moment.js 检测北半球或南半球
Detect Northern or Southern hemisphere with Moment.js
Someone previously asked how to detect hemispheres 接受的答案是这样的:
window.whatHemisphere= (function(){
var y= new Date().getFullYear();
if(y.getTimezoneOffset()==undefined) return null;
var jan= -(new Date(y, 0, 1, 0, 0, 0, 0).getTimezoneOffset()),
jul= -(new Date(y, 6, 1, 0, 0, 0, 0).getTimezoneOffset()),
diff= jan-jul;
if(diff> 0) return 'N';
if(diff< 0) return 'S'
return null;
})()
但是,如果我使用 Moment.js 和 Moment Timezone,是否有比使用这些库提供的工具更可靠的方法?
不,moment 没有内置任何东西可以为用户提供 north/south 半球。
此外,您显示的函数总是去 return null
因为 getTimezoneOffset
在 Date
上,但 y
只是一个数字。
即使您在 Date
上调用它,世界上并非所有国家/地区都遵守 DST。事实上,according to Wikipedia,世界上 多数 没有遵守夏令时。
唯一有意义的一点是 如果(且仅当)某个位置遵守夏令时,北半球的国家/地区将在 7 月夏季时实行夏令时,南半球国家在一月正值夏季时将进入夏令时。
Someone previously asked how to detect hemispheres 接受的答案是这样的:
window.whatHemisphere= (function(){
var y= new Date().getFullYear();
if(y.getTimezoneOffset()==undefined) return null;
var jan= -(new Date(y, 0, 1, 0, 0, 0, 0).getTimezoneOffset()),
jul= -(new Date(y, 6, 1, 0, 0, 0, 0).getTimezoneOffset()),
diff= jan-jul;
if(diff> 0) return 'N';
if(diff< 0) return 'S'
return null;
})()
但是,如果我使用 Moment.js 和 Moment Timezone,是否有比使用这些库提供的工具更可靠的方法?
不,moment 没有内置任何东西可以为用户提供 north/south 半球。
此外,您显示的函数总是去 return null
因为 getTimezoneOffset
在 Date
上,但 y
只是一个数字。
即使您在 Date
上调用它,世界上并非所有国家/地区都遵守 DST。事实上,according to Wikipedia,世界上 多数 没有遵守夏令时。
唯一有意义的一点是 如果(且仅当)某个位置遵守夏令时,北半球的国家/地区将在 7 月夏季时实行夏令时,南半球国家在一月正值夏季时将进入夏令时。