关于unixstamp的问题?有请各路高手,绝对不简单的问题

phplover 2003-06-13 10:24:37
大家知道:
date("Y-m-d H:i:s",0);
这样得到的是1970-01-01 08:00:00,也就是说date函数是根据系统时钟得到的日期和时间,现在我的问题就是:
要求根据某个时间戳记取得对应的日期和时间,这个日期和时间跟操作系统的时区没有关系,只跟你自己设置的时区参数有关系。
要求写一个函数,如:
function getDate($unixtime,$zoneNum=8){//这里$zoneNum是根据你所处地区的时区

}


搞定了100分
...全文
27 16 打赏 收藏 转发到动态 举报
写回复
用AI写文章
16 条回复
切换为时间正序
请发表友善的回复…
发表回复
phplover 2003-06-16
  • 打赏
  • 举报
回复
不过少了一个括号而已
phplover 2003-06-16
  • 打赏
  • 举报
回复
不好意思
owen_young()第二个函数正确,不错。

哈哈,又学到一个函数gmdate,谢谢

给分
phplover 2003-06-16
  • 打赏
  • 举报
回复
Owen_Young() 的还是跟系统的时区有关系,所以不正确
Owen_Young 2003-06-15
  • 打赏
  • 举报
回复
<?php
function myDate($unixtime,$zoneNum=8) {
return gmdate("Y-m-d H:i:s",($unixtime+$zoneNum*3600);
}
phplover 2003-06-13
  • 打赏
  • 举报
回复
xuzuning(唠叨)的好像不对吧

如果有的时区为负值呢,而date("H",0)返回的值始终是正值
xuzuning 2003-06-13
  • 打赏
  • 举报
回复
<?php
function myDate($unixtime,$zoneNum=8) {
$h = date("H",0);
return date("Y-m-d H:i:s",$unixtime+($zoneNum-$h)*3600);
}
echo myDate(time()); // 2003-06-13 12:07:54
echo myDate(time(),0); // 2003-06-13 04:07:54
?>
ashchen 2003-06-13
  • 打赏
  • 举报
回复
两个相邻的时区之间不就是相差3600秒吗?呵呵
vivanboy 2003-06-13
  • 打赏
  • 举报
回复
换一个函数名吧,php已经有了

function getDateTime($unixtime,$zoneNum=8){
$t=$unixtime-date("Z")+$zoneNum*3600;
if($t>0)return date("Y-m-d H:i:s",$t);
else return -1;
}
echo getDateTime(time(),0);//GMT时间
echo "<BR>";
echo getDateTime(time());//北京时间
phplover 2003-06-13
  • 打赏
  • 举报
回复
现在的要求就是做到跟系统的时区没有关系
phplover 2003-06-13
  • 打赏
  • 举报
回复
也就是说date函数是跟系统的时区有关系的
Owen_Young 2003-06-13
  • 打赏
  • 举报
回复
<?php
function myDate($unixtime,$zoneNum=8) {
return date("Y-m-d H:i:s",($unixtime/3600+$zoneNum)*3600);
}
phplover 2003-06-13
  • 打赏
  • 举报
回复
用vivanboy(从不睡懒觉的鸟儿)的date("Z")比较准确

不过,还有没有其它比较经典的算法阿?一步一步来求,尽量不要根据php的时间函数来计算!

搞定了我开帖给分

这个帖应该算是比较经典的吧
phplover 2003-06-13
  • 打赏
  • 举报
回复
比方说在GMT时间1970-01-01 00:00:00的时候-1区的date("H",0)是23,你这里8-23就不正确了,8-23相差15个小时,而实际上只是相差8-(-1)=9个小时
phplover 2003-06-13
  • 打赏
  • 举报
回复
我在手册上看的阿,明明是:
H - hour, 24-hour format; i.e. "00" to "23"
就是00-23,根本没有负值,也不是什么服务器端的时差。

你这里指的时差是什么?

比方说1970-1-1 00:00:00的时候-1区的date("H",0)是23,你这里8-23就不正确了
xuzuning 2003-06-13
  • 打赏
  • 举报
回复
date("H",0) 返回的是服务器端的时差
要从给定的时区中扣除的$zoneNum-$h
phplover 2003-06-13
  • 打赏
  • 举报
回复
vivanboy(从不睡懒觉的鸟儿)的函数可以

还有没有其他方法,各位继续
1. 什么是量产工具,有何作用?量是指批量的意思,即量产工具可以一次性生产出很多U盘,只要你的USB孔足够。   量产工具是针对U盘主控芯片进行操作的由厂商开发的低层软件,作用:   1)低格U盘   2)生产加密盘,启用加密功能(仅支持在第一个分区)   3)分区,可以生产只读分区,更改U盘介质类型(removabel 和 fixed)   4)量产出USB-CDROM,此作用可以做启动光盘(仅支持在第一个分区)   5)修改厂商等信息,制作个性化U盘(比如一插上U盘,右下角就显示"某某的U盘"或其他自设的内容)这点也常被黑心厂商利用来修改假冒U盘.   量产工具的英文简写是MP Tool,更详细一点是Mass Production Tool,表示大量生产的工具软件   2. 读卡器所组成的U盘能量产出CDROM吗?   不能,也许以后会有这样的读卡器。   3.移动硬盘能量产吗?   目前不能,芯邦在搞,据说明年会出来。   如果真出来这样的工具,CD\DVD销量可能要大大下降了。   4.所有U盘都能量产吗?   应该是的,就看有没有合适的量产工具放出。主控厂商肯定都有的。   5.如何判断U盘主控 ?   1) 用芯片精灵(ChipGenius)软件来检测   2) 最准确方法-拆盘,看主控芯片(一般是正方形较小的那块)上刻的型号.   6. 什么量产工具最好用?   都差不多,就看熟不熟练。   7. 使用量产工具要注意什么?   1)不要怕,大胆的弄,U盘不会坏的。   2)量产也有经常出错的时候,如U盘变成8M,再次进行。   8. 量产出的CD-ROM最大可以是多大?   不同版本,牌子不一样,我的4G的ICREATE的可以量产出1G多点。这个技术指标开发商不透露。   现在有些主控已经可以量产DVD了,可以达到4G   9. 量产工具版本越高越好吗?   不一定,还要看是不是支持你的U盘的类型。   10. 量产出的CDROM启动兼容性、速度怎样?   新主板几乎都可以,老主板有的USB-HDD或USB-ZIP都不行,但CDROM可以;如果主板支持USB2.0且打开“high speed”,U盘也支持USB2.0这个启动速度是很快的,用来安装WinXP就是一例   11. 不同的量产工具为什么不能通用?   主要区别在于不同厂家的主控芯片都有其保密的指令与函数,没法通用。   12. 为什么有的CDROM要以启动2次才可以成功   这个,有高手研究,说到这里,涉及到了BIOS内容,不同BIOS的处理情况不一样,我们这里没有这样的专家。当年BINBIN等CRACK VISTA的时候,BIOS专家出面,解决了不少问题,当然是针对AWARD的,至于AMI的,还没有这样的公开程序。如果从BIOS层面解决对 USBCDROM的识别问题,就太好了。   13. 从哪里可以得到量产工具?   1)从U盘厂家网站,一般主控开发商都给他们主控的。   2)从数码之家网站下载,更新很快,相当齐全   3)搜索网络,包括网络和这里   4)打电话或发EMAIL要   14. MP3、MP4等设备可以做启动盘吗?   硬件基本差不多,都可以的。一般只能做USB-HDD启动   15. 量产成CDROM后,剩余空间怎么用?   剩余空间会被识别成为一个独立的U盘,可以做成fixed盘,进一步分区;也可以为removable盘。剩余空间可以用来作启动,也可以当成普通U盘储存文件.   16. 量产工具可以在VISTA下运行吗?   可以   17. 如果测试量产出的CDROM成功了?   好多人量产完成后用几台机器试都无法启动,怎样确定是否成功呢?很简单,用虚拟机,启机时选择CDROM先启动就可以了,如果成功则量产没有问题   18. 关于CDROM的一个启动问题   碰到一个主板,首次USBCDROM启动没有问题,可是第二次,就不行了,停止了,说什么没有系统。解决方法就是在BIOS的BOOT顺序时重新设置USBCDROM为第一启动,保存一下BIOS   19.为什么量产工具不认U盘或量产时出错.   如插上去量产软件中没反应,或显示"下载代码时发现错误".有可能是量产工具与U盘主控不对应,建议拆开U盘看主控型号,重新下对应的量产工具.   如显示"闪存ID不符合" 之类的错误,建议下载更新版本含有新出闪存代码的量产工具.   20. 量产失败,无法用软件补救怎么办?   接到电脑上短接Flash芯片(一般是第29和第30引脚)直到电脑认出.   用专用工具修复

21,886

社区成员

发帖
与我相关
我的任务
社区描述
从PHP安装配置,PHP入门,PHP基础到PHP应用
社区管理员
  • 基础编程社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧