转换为大整数时PHP日期格式问题
我想将两个日期作为big int类型存储到数据库中,我有一个数组,该数组被序列化,并将数组值发送到第二个表单,该数组由转换为大整数时PHP日期格式问题,php,date,bigint,Php,Date,Bigint,我想将两个日期作为big int类型存储到数据库中,我有一个数组,该数组被序列化,并将数组值发送到第二个表单,该数组由 [checkin] => 01-07-2015 [checkout] => 03-07-2015 在使用 $arr['checkin'] = strtotime($arr['checkin']); $arr['checkout'] = strtotime($arr['checkout']); 我得到的值分别为14356890001435861800,比实际日期值
[checkin] => 01-07-2015
[checkout] => 03-07-2015
在使用
$arr['checkin'] = strtotime($arr['checkin']);
$arr['checkout'] = strtotime($arr['checkout']);
我得到的值分别为14356890001435861800
,比实际日期值少一天
如果我的代码是
<?php echo date('d-m-y', '1435689000');?>
输出将为30-06-15
我想不出是什么问题,请你帮忙。谢谢。在使用strotime功能之前,我们必须设置日期格式。因为php不能接受用户提供的所有格式。我们可以这样使用:
您需要了解这两个函数之间的区别 (一) 返回使用给定整数时间戳或当前时间(如果未给定时间戳)根据给定格式字符串格式化的字符串。换句话说,timestamp是可选的,默认值为time() (二) 与date()函数相同,只是返回的时间是格林威治标准时间(GMT) 如果您看到了另一个函数,它已经定义了这两个函数是相同的,但返回的是GMT 如果您同时响应这两个函数和
时间
,您就会理解其中的区别
echo date('Y-m-d H:i:sP',1435689000);//2015-07-01 00:00:00+05:30
echo gmdate('Y-m-d H:i:sP',1435689000);//2015-06-30 18:30:00+00:00
这是因为根据GMT时区,您当前的时间是+0530早于GMT。因此,这两个时区的输出都是正确的,但区别在于时区可能您的数据库时区和PHP时区不同…@Amadan知道我如何检查这两个时区是不同的还是相同的吗???@Amadan我想我无法获得日期对话的正确值。稍后,我可以考虑数据库和PHP的时区。我的外星人思维探测器不会让我看到你正在使用哪个数据库。我相信,对于PHP,您可以使用@shridhar运行phpmyadmin中的
SELECT NOW()
,了解服务器的时间,并将其与PHP中的日期时间进行比较\
$date = \DateTime::createFromFormat("d-m-Y" , '03-07-2015');
echo gmdate('d-m-y', strtotime($date->format('Y-m-d H:i:s')));
string date ( string $format [, int $timestamp = time() ] )
string gmdate ( string $format [, int $timestamp = time() ] )
echo date('Y-m-d H:i:sP',1435689000);//2015-07-01 00:00:00+05:30
echo gmdate('Y-m-d H:i:sP',1435689000);//2015-06-30 18:30:00+00:00