首页 / PHP / php-在JS中默认更改时区
php-在JS中默认更改时区
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php-在JS中默认更改时区,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2166字,纯文字阅读大概需要4分钟。
内容图文
![php-在JS中默认更改时区](/upload/InfoBanner/zyjiaocheng/654/3a144a19688b4a93b66fb01bc0c6ddeb.jpg)
PHP有一个名为date_default_timezone_set的函数,它会影响使用Date()命令的GMT.
有没有办法影响JS?
我有这个功能:
function calcTime(offset) {
d = new Date();
utc = d.getTime() + (d.getTimezoneOffset() * 60000);
nd = new Date(utc + (3600000*offset));
return nd;
}
可能改为调用New Date();她的问题是她很好,只是我想得到New Date();
但是,如果我想传递参数,那么问题就更多了……例如,
新日期(年,月);
有没有人有像PHP这样的解决方案,它只影响New Date()?本身不更改功能就可以调用吗?
解决方法:
这是一个不幸的问题. JavaScript不允许您设置默认时区.而且JavaScript并不容易将Date子类化.您不能将Date的构造函数作为函数调用,并且如果使用任何未定义的参数创建Date,则会得到无效的日期.
因此,您可以像以前一样创建自定义函数,也可以创建create a custom date object and define all the functions from Date.
为了向前兼容和简单的代码,这里是一个自定义函数解决方案.
(function(){
// Internal timezone settings
var offset_hr = 0;
var offset_ms = 0;
// Get current default timezone in hours
window.getTimezoneOffset = function getTimezoneOffset ( ) { return offset_hr; }
// Set current default timezone in hours
window.setTimezoneOffset = function setTimezoneOffset ( offset ) {
offset_hr = offset * 1 ? offset * 1 : 0;
offset_ms = offset ? offset * 60 * 60 * 1000 : 0;
}
// Create a date with default timezone
window.newDate = function newDate ( year, month, day, hour, min, sec, ms ) {
// Create base date object
var d;
switch ( arguments.length ) {
case 0 : d = new Date( ); break;
case 1 : d = new Date( year ); break;
case 2 : d = new Date( year, month ); break;
case 3 : d = new Date( year, month, day ); break;
case 4 : d = new Date( year, month, day, hour ); break;
case 5 : d = new Date( year, month, day, hour, min ); break;
case 6 : d = new Date( year, month, day, hour, min, sec ); break;
case 7 : d = new Date( year, month, day, hour, min, sec, ms ); break;
}
// Convert to utc time
var offset = d.getTimezoneOffset();
if ( offset || offset_ms ) d.setTime ( d.getTime() + offset * 60 * 1000 + offset_ms );
return d;
}
})();
用法示例:
setTimezoneOffset( '+2' );
newDate();
newDate('2011-01-24');
newDate(new Date().getTime());
newDate(2011, 12, 31);
newDate(2011, 12, 31, 12, 34, 56, 789);
只要您不检查新日期的getTimezoneOffset,就可以了.
内容总结
以上是互联网集市为您收集整理的php-在JS中默认更改时区全部内容,希望文章能够帮你解决php-在JS中默认更改时区所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。