PHP 实现的静态世界时钟功能
昨天有个博友的网站上需要加上显示世界时钟的功能,于是向我求助,因为是用在 WordPress 主题上的,所以要用 PHP 来实现,硬着头皮答应了下来。不过说实话,我的 PHP 水平还不如我的英语水平,就是只会看不会写的那种,Wordpress 主题以内的一些 PHP 函数我还算比较熟悉,但是 WordPress 以外的 PHP 我就有些傻眼了,每次写 PHP 都是咬着笔头,翻着 PHP 手册,搜着 Google,挤牙膏一样才挤出那么一点东西。
关于这个世界时钟的功能,原理上是很简单的,只要设置一个基准的默认时间,然后把其他地区的时间加上时间差就可以了,但是用什么函数呢?翻呀翻,搜呀搜,终于被我搞定了,贴出来留个纪念。先看 DEMO~
以下是世界时钟完整的 PHP 代码:
//设置默认时区
date_default_timezone_set('Etc/GMT-8');
//当地时间,即北京时间
$localtime = date('Y-m-d H:i:s');
//伦敦时间
$london = date('Y-m-d H:i:s',strtotime("-8 hours $localtime"));
//柏林时间
$berlin = date('Y-m-d H:i:s',strtotime("-7 hours $localtime"));
//开罗时间
$cairo = date('Y-m-d H:i:s',strtotime("-6 hours $localtime"));
//莫斯科时间
$moscow = date('Y-m-d H:i:s',strtotime("-5 hours $localtime"));
//新德里时间
$newdelhi = date('Y-m-d H:i:s',strtotime("-3 hours $localtime"));
//曼谷时间
$bangkok = date('Y-m-d H:i:s',strtotime("-1 hours $localtime"));
//东京时间
$tokyo = date('Y-m-d H:i:s',strtotime("+1 hours $localtime"));
//悉尼时间
$sydney = date('Y-m-d H:i:s',strtotime("+2 hours $localtime"));
echo '伦敦时间:' . $london. '<br />';
echo '柏林时间:' . $berlin. '<br />';
echo '开罗时间:' . $cairo. '<br />';
echo '莫斯科时间:' . $moscow. '<br />';
echo '新德里时间:' . $newdelhi. '<br />';
echo '曼谷时间:' . $bangkok. '<br />';
echo '北京时间:' . $localtime. '<br />';
echo '东京时间:' . $tokyo. '<br />';
echo '悉尼时间:' . $sydney. '<br />';
?>
看代码还是很好理解的,但是却花了我近一个小时来研究时间函数,才写出这么几行。尤其是这个 date_default_timezone_set() 函数,刚开始我没有写这个函数,输出的时间和实际时间相差了8个小时,我想那一定是时区的问题了,一查果然如此。因为北京时间是东8区的,而从 php5.1.0 开始,php.ini 里加入了 date.timezone 这个选项,默认情况下关闭的,也就是显示的时间都是格林威治标准时间(GMT),这和我们的北京时间正好相差8小时。
这样就做好了,看着自己的成果,还算不错,哈哈~不过有些遗憾,这个 PHP 实现的时钟只是静态的,只有刷新页面才能更新时钟,如果可以动态实时的显示世界时钟的功能就更完美了,不过动态的应该需要 Javascript 脚本的配合使用吧,这个更高级了,我还不会。不知道有没有现成的世界时钟的 API 可以调用呢?这样也免去了自己写代码的麻烦。
今天算是小有收获,又学会了一个 PHP 函数,另外感谢所有向我提问的童鞋,是你们给了我一个折腾的目标。
-
跨出挑战正则表达式的第一步2010年08月22日 -
Wordpress 显示随机广告的方法2010年05月13日 -
PHP 学习笔记:echo 输出2009年09月12日 -
《PHP从入门到精通》视频教程2009年09月11日
这个《PHP从入门到精通》那本书上就有代码的
用js玩过
继续折腾。。。
有没有见过EXCEL制作的时钟咧,请看-运用Excel散点图 制作时钟 教程-(url-http://surda.cn/2010/07/excel-clock-by-scatter-diagram/)
我一看到代码就头大
折腾无极限
老万 这个时钟 硬着头皮搞出静态版 可喜可贺 动态版的 有计划没
动态的已经有朋友给出思路了,有空再搞一个,呵呵
万戈像楼下的这种你也允许存在呀?
留给有需要的朋友
JS也有时间函数的,不过用php也可以强制浏览器刷新的嘛,哈哈~我记得有一些提供世界时间服务的网站的
可以去搜clocklink
以前用过flash的时钟,插入代码就能用了,呵呵
来支持一下
围观群众。
不明真相的群众?
js的也很容易,用定时器每秒刷新显示一下,就行了
我对js脚本还是一窃不通
Js应该能让它动起来 ~
P.s. Javascript强力恐惧症患者路过 ~
javascript强力征服者来顶
这是本地时间么?
有本地时间,也有世界各时区的时间
哦,是以本地时间为基准的. 不是标准时间...再写个标准时间的
偶想说,飘过一下
什么网站居然要世界时间?
一个游戏站,主要针对国外玩家的
我在本地测试也没有这个问题的
哎哟,不错哦~
这个。。demo需要美化,哈哈。
我随手做的,懒得美化了,哈哈
动态的 到能试试JS~
我估计直接调用外站的。。。。。。例如北京时间网的代码
北京时间网?听一次听说,瞧瞧去
额,这种网站好多。。
不错啊。提供技术的文章就是欢迎啊。
数据好好学PHP,哈哈~
今天是读研日记第九天了吧?
刚好更新
可惜只是加减小时,有API的话可能更精确
折腾才有乐趣嘛
不知道google有没有这样的api
万戈又折腾了,呵呵
只是小折腾,呵呵
嗯 很不错
呼呼,奶牛来看看,虽然奶牛吃草也需要按时~~~
羡慕你的文“穷”(文章无穷无尽),我继续文“囧”
你不觉得我也是因为文囧才写出这么水的一篇文章吗?
哈哈..又来折腾,支持啊..
有折腾才有进步嘛
看着你折腾,我就开心,哈哈。我在看你折腾中进步。哈哈
哈哈,自己折腾嘛,进步更快呀
没有时间,呵呵..近来挂着考试啊..
你的可以作弊,我这里很严啊、已经说我rp不好,撞到的基本上都是四大名捕啊..唉..
对于专业人士来说这个很简单啦,对于我来说折腾了很久呢
不错不错的说
嘿嘿,花了我不少时间呢
为啥俺订阅的你到现在还木反应。。
刚启用了缓存插件,会不会有影响呢?
应该是feedsky的迟钝。。
我决定订阅Wordpress原版的feed
订阅原feed才是明智的
feedsky有一天夜里用绑定的域名访问会提示错误 用他们给的域名可以访问
后来好了,但是从那天起 feedsky也迟钝了。。
不用的闪过……
一直想好好学,就是实在没时间
最近老万高产啊。
我每天高产的,哈哈
热心的万兄,以后就当我们的技术支持了。
哈哈,技术支持我还不够资格呀
在~
有没有多大用哦,
也不知道
呵呵……
对于一般用户用不太到的
过来看看········
demo很帅气,看代码头很晕,不过我相信肯天有一天可以征服这些代码,我在上学的时候用VB编过贪食蛇,
。
我用VB编过打汽球,哈哈
老万,我发现百度和Google都没有收藏你www开头的网址,你是怎么做的?
301重定向啊,输入www.的都会自动跳转到没有www的
wordpress本身就有空上功能啊…… 可是为什么Google收录的有Www的比没有的还多,好奇怪啊
google有网站管理员工具,可以设置带www的不被收录
跟着老万,一起进步,学习php
是我跟着你学PHP才是呀
小万越来越强悍了。
终于有人叫我小万了,被他们老万老万的,都叫老了,哎。。。
叫老萬比較專業一點w
我还年轻,大老婆管我叫小P孩
哈哈,看来还是俺懂小万啊
小万好犀利,哈哈……
来晚啦
人家要吃飯的……
还以为你又出浴了呢
我每次的吃飯時間都在8時,經常發文時間相撞……SF自然就(ry(遠望
多數都吃半小時啊
哦哦,明天我8点还在上课,晚上10点才会发文,你应该可以抢到哦?
我試試看吧……(無力
http://wpg.im/bbs/ 头部调用的就是~
那个是动态的呀,我要研究一下去
那个是flash的。。
我刚折腾了个jQuery的:
http://amangs.com/demo/jQuery/refresh/ 改下样式应该就可以使用了
哇,还是你这个帅,我去扒你的代码
代码其实并不复杂 也就两行
拿走吧~
好囧,时间竟然不是一块变的……
记得上次我 做秒杀活动 ,好像用过这个 time http://hzlzh.com/demo/time.html
是哦,动态的耶,纯PHP吗?
这沙发速度。。。
哈哈,你也来晚啦,同学们都好积极啊
万戈赔我沙发呀?我的第一条流言不翼而飞呀。
我直接提交后没显示了,再刷新连结被重置,囧
我刚才也被重置了一下
什么叫被重置了呀?
被墙的一种表现
有吗?我去后台找找
我的沙发内容是:“成都新朝阳”
找没找到啊?
垃圾里翻遍了也没有你。。。
万戈你该修修你博客了,速度变慢了,而且我发评论的时候,老是发布上去,提交后下面显示一个红X,
主机升级中
我也要砸场子,我的第一条留言竟然没了。
围观,不行也插两脚算了
想当年Chrome dev还在5.x时我也是这种情况,每次都跑到Opera下边去灌水
我怎么没抢到啊?
直接Ctrl+C了。不知道抢没抢到。
地下室去咯
从地下室给我翻出来呀:我的沙发内容是:“成都新朝阳”
占不到了- -TTt
差一点点,明天继续吧
何其悲催,就网卡了一下,失去了响应
沙发
二楼出杯具呀
sf
乱世抢沙发呀!
好不容易啊
不知咋的,你的域名经常dns解析不到,刚刷新就没了
擠郵箱洩憤……