日期转换为时间戳转换

时间:2014-07-26 11:48:52

标签: php date datetime timestamp

我正在使用xampp服务器并且我已将时区设置为我当前的时区。我正在尝试将日期和时间插入到我的数据库中,但是在获取日期功能方面存在一些问题。

日期

我目前的时间:26-07-2014 10:15:03 AM。

  1. 当我从php date('d-m-Y , h:m:s');获取约会时,它正在向我显示正确的时间差异6分钟。

    date('d-m-Y , h:m:s');的结果: 27-07-2014,10:07:32

  2. 当我从date("d-m-Y g:i:s A")获取约会时,它会向我显示确切的时间。

    date("d-m-Y g:i:s A");的结果: 27-07-2014 10:14:32 AM


  3. 的时间戳

    1. 当我从php echo strtotime("now");获得时间戳时,它距离工作时间只有五个小时。

      echo strtotime("now");的结果: 1406438072;

      Ater转换: Sun,2014年7月27日05:14:32 GMT

    2. 当我将date('d-m-Y , h:m:s');转换为时间戳时,它距离停留时间为5小时。

      已转换date('d-m-Y , h:m:s');的结果: 1406437652

      转换后: Sun,2014年7月27日05:07:32 GMT

    3. 当我将date("d-m-Y g:i:s A");转换为时间戳时,它又落后了五个小时。

      已转换date("d-m-Y g:i:s A");的结果: 1406438072

      转换后: Sun,2014年7月27日05:14:32 GMT


    4. 我目前的时区是Asia/Karachi


        

      问题:   任何人都能告诉我为什么当我将我的日期转换为时间戳时,我的时区落后5个小时,以及将日期转换为时间戳的正确解决方案是什么?

4 个答案:

答案 0 :(得分:2)

您的格式/诊断PHP代码不正确。你有这个:

d-m-Y , h:m:s
  ^       ^

同样的代码也是不可能的:

date('d-m-Y , h:m:s')

...打印完全不同的结果:

6-07-2014 , 05:07:47
1406333267

所以我猜你的真实代码可能存在这个以及其他一些错别字。计算机非常挑剔:)

答案 1 :(得分:1)

你应该改变你的格式试试这个

<?php
date_default_timezone_set('Asia/Kolkata'); // for india 
// you  can set your timezone in above line
// date_default_timezone_set('Asia/Karachi'); // for pakistan
$date = date('d-m-Y g:i:s A')."\n"; 
echo $date;
$time = strtotime($date);
echo "\n".$time."\n";
echo "\n".date('d-m-Y g:i:s A', $time);
?>

输出:

26-07-2014 11:59:23 AM

1406375963

26-07-2014 11:59:23 AM

Demo

答案 2 :(得分:1)

这是时区的问题。尝试使用localtime()功能。 或者可以使用函数date_timezone_set()

答案 3 :(得分:1)

我在租用的服务器上遇到问题,时间比我本地的时间少了两个小时。

所以我采取的措施是:

$new_time = date("Y-m-d H:i:s", strtotime('+2 hours'));

然后我只需要$new_time我需要的地方。

像魅力一样。