php 获取当前时间相差12小时_php时间戳转换差8小时问题

PHP时间大的来分有两种,一是时间戳类型(1228348800),二是正常日期格式(2008-12-4)

所以存到数据库也有两种形式了(真正不止,我的应用就两种),时间戳类型我是保存为字符串的,这个是比较方便的.

正常日期类型是保存为DATE型的.

这两个要注意一下,我平时用两种,所以,前几天建的表,把时间类型存为DATE的,我还一直用时间戳保存,一直资料写不进表,调试了好久的才知错误之处,是类型不符合,不给写入库.

像上面的时间戳是比较方便,但,显示的时候,不至于把这个1228348800串给客户看吧,GOD NOWS!

所 以就用到了这两个的转换,先说一下如何取得当前的时间戳,$date1=time();这样就取得当前的时间戳了,要转回2008-12-4这种格式呢, 用到date()这个函数了,在PHP中date()函数比较常用,如取得当前日期,可以用$date2=date('Y-m-d');,关于里面参数的 意思,如不懂就查一下php的手册了.

好,言归正传,把1228348800转成2008-12-4格式代码如下:

$date3=date('Y-m-d H:i:s',"1228348800");

这样就OK了,如还想得到小时,分钟秒,只要把'Y-m-d'改一下就可以了,不过要注意一下,PHP时间还像有8个小时的误差.加上就OK了.

时间戳转正常日期有了,反之呢,把正常日期格式转为时间戳呢,请看如下代码:

$year=((int)substr("2008-12-04",0,4));//取得年份

$month=((int)substr("2008-12-04",5,2));//取得月份

$day=((int)substr("2008-12-04",8,2));//取得几号

echo mktime(0,0,0,$month,$day,$year);

这样就能把正常日期转成时间戳了,这里如果有时分秒也是同理,

注意:php5.1以上时间戳会与实际时间相差8小时,解决办法如下

1、最简单的方法就是不要用php5.1以上的版本--显然这是不可取的方法!!!

2、修改php.ini。打开php.ini查找date.timezone 去掉前面的分号= 后面加Asia/Shanghai,重启apache服务器即可--缺点就是如果程序

放到别人的服务器上,不能修改php.ini,那就奈何不得了。

3、在程序中添加时间的初始化的语句的 即:“date_default_timezone_set("Asia/Shanghai"); ”这个可以由程序员任意设置,我的推

荐。

时区标识符,大陆内地可用的值是:PRC,Asia/Chongqing ,Asia/Shanghai ,Asia/Urumqi (依次为中国,重庆,上海,乌鲁木齐) ,Etc/GMT-8,Asia/Harbin

港台地区可用:Asia/Macao ,Asia/Hong_Kong ,Asia/Taipei (依次为澳门,香港,台北)

还有新加坡:Asia/Singapore

澳大利亚:Australia/Sydney

原址:http://hailinhe1986-163-com.javaeye.com/blog/484538

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
### 回答1: 在 PHP 中,可以使用 `time()` 函数来获取当前的 Unix 时间戳。然后,您可以使用加法运算符 (`+`) 将当前时间戳加上所需的秒数来获取两小时后的时间戳。 举个例子,假设您希望获取两小时后的时间戳,您可以使用以下代码: ``` $current_timestamp = time(); $two_hours_later_timestamp = $current_timestamp + (2 * 60 * 60); ``` 在这段代码中,`$current_timestamp` 变量保存了当前的时间戳,然后将其加上 2 小时 (2 * 60 * 60 秒) 的秒数,得到了两小时后的时间戳。 注意:这里的两小时是指两小时的秒数,也就是 7200 秒。如果您希望获取其他时间段的时间戳,可以根据需要调整秒数的值。 希望这些信息对您有帮助! ### 回答2: 要获取当前时间戳两个小时后的时间戳,可以使用PHP中的时间函数和时间戳函数来实现。 首先,使用time()函数获取当前时间戳。 ``` $currentTimestamp = time(); ``` 然后,利用PHP中的strtotime()函数将当前时间戳增加两个小时时间,并将其转换时间戳。 ``` $twoHoursLater = strtotime('+2 hours', $currentTimestamp); ``` 最后,可以将$twoHoursLater的值打印出来,即为当前时间戳两个小时后的时间戳。 ``` echo $twoHoursLater; ``` 经过上述步骤,就可以获得当前时间戳两个小时后的时间戳了。 ### 回答3: 要获取当前时间戳两个小时后的时间戳,可以使用PHP中的时间戳函数和时间函数来完成。具体的步骤如下: 1. 使用`time()`函数获取当前的时间戳,该函数返回的是自1970年1月1日以来的秒数。 2. 将当前时间戳加上两个小时的秒数,即3600秒/小时 * 2小时 = 7200秒。 3. 使用`date()`函数将新的时间戳转换为需要的日期格式。 下面是一个示例代码: ```php <?php $currentTimestamp = time(); // 获取当前时间戳 $hoursLaterTimestamp = $currentTimestamp + (2 * 3600); // 加上两小时的秒数 $dateTime = date("Y-m-d H:i:s", $hoursLaterTimestamp); // 将新的时间戳转换为日期格式 echo "当前时间戳:".$currentTimestamp."</br>"; echo "两个小时后的时间戳:".$hoursLaterTimestamp."</br>"; echo "两个小时后的时间:".$dateTime; ?> ``` 以上代码中,首先使用`time()`函数获取当前时间戳,并将其存储在`$currentTimestamp`变量中。然后使用`+`运算符,将两个小时的秒数加到当前时间戳上,得到新的时间戳,并将其存储在`$hoursLaterTimestamp`变量中。最后,使用`date()`函数将新的时间戳按照指定的日期格式转换为日期时间字符串,并将其存储在`$dateTime`变量中。通过`echo`语句将当前时间戳、两个小时后的时间戳和两个小时后的时间分别输出到页面上。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值