PHP日期转换为时间戳

时间:2018-06-10 17:36:35

标签: php timestamp strtotime

我想将php日期转换为时间戳。但即使我更改了网址中的日期,我也能获得相同的输出。

示例:想象一下,我有获取值的URL。

url:localhost/index.php?text_checkin=22/06/2018

$checkin = strtotime($_GET['text_checkin']);
$textin = date('y/m/d', $checkin);
echo $textin;

输出:70/01/01

请帮我解决这个问题。

4 个答案:

答案 0 :(得分:3)

使用date_create_from_format代替

工作演示:https://eval.in/1018426

$checkin = $_GET['text_checkin'];

$dateObj = date_create_from_format('d/m/Y',$checkin);
echo date_format($dateObj,'Y/m/d');

<强>输出

2018/06/22

更多信息:http://php.net/manual/en/datetime.createfromformat.php

答案 1 :(得分:1)

此格式未被strtotime识别为有效日期..尝试使用DateTime对象,如下所示:

$dateTimeObject = DateTime::createFromFormat('d/m/Y', '22/06/2018');
echo $dateTimeObject->getTimestamp();

答案 2 :(得分:0)

$mCheckIn = $_GET['text_checkin'];//getting the check in date
$mDateObj = date_create_from_format('d/m/Y',$mCheckIn);//creating a date object.  
echo date_format($mDateObj,'Y/m/d');//echo or store the results in a variable

输出:

2018/06/22

试试

答案 3 :(得分:0)

如果您知道格式始终相同,那么您可以将/替换为-,这将使其成为strtotime的有效格式。

$checkin = strtotime(str_replace("/","-","22/06/2018"));
$textin = date('y/m/d', $checkin);
echo $textin;

这可能比调用date_create_from_format更轻 另一方面,date_create_from_format仅适用于此特定格式 如果格式为Y-m-d,则此代码也可以,但date_create_from_format不会。

https://3v4l.org/Hkrop