PHP Unix时间戳
我有一个代码,但找不到哪里有错误。我有即将到来的事件和当前时间。如果我将我的事件转换为时间戳,它将小于当前时间戳。也许你能帮助我 我的代码如下:PHP Unix时间戳,php,date,timestamp,Php,Date,Timestamp,我有一个代码,但找不到哪里有错误。我有即将到来的事件和当前时间。如果我将我的事件转换为时间戳,它将小于当前时间戳。也许你能帮助我 我的代码如下: <?php date_default_timezone_set('Etc/GMT'); $upcoming = "2012.09.05 23:50"; $current = time(); echo "Upcoming: " . $upcoming . " | Timestamp:" . mktime(23, 5
<?php
date_default_timezone_set('Etc/GMT');
$upcoming = "2012.09.05 23:50";
$current = time();
echo "Upcoming: " . $upcoming . " | Timestamp:" . mktime(23, 50, 0, 09, 05, intval(date("Y")));
echo "<br>Current: " . time();
echo "<br>Current SIM: " . mktime(date("H"), date("i"), date("s"), date("m"), date("d"), date("Y"));
?>
其中当前>即将到来的时间戳。(???)
谢谢 因为您有09(前面有一个0),所以这个数字被解释为一个八进制数,所以它被转换为0。
使用:mktime(23,50,0,9,5,intval(日期)(“Y”)代码>
你可以稍微探索一下这个“特性”
编辑
日期('n')代码>返回不带前导零的月份。和日期('j')代码>和<代码>日期('G')代码>返回不带前导零的日期和小时。因此,您可以更改mktime(日期(“H”)、日期(“i”)、日期(“s”)、日期(“m”)、日期(“d”)、日期(“Y”)代码>至mktime(日期(“G”)、日期(“i”)、日期(“s”)、日期(“n”)、日期(“j”)、日期(“Y”)代码>
如果不使用date()
的前导零,就无法获得分钟数和秒数,因此您可能需要为此找到另一个函数
编辑:
要将2012.09.05 23:50
转换为时间戳,您可以将
更改为/
,并将其输入到strotime()
:
去掉不必要的零,这样就可以了
mktime(23,50,0,9,5,国际日期(“Y”) 对。此字符串:日期\默认\时区\设置('Etc/GMT');那么我怎样才能把09转换成9呢?你的代码中有09的硬编码,所以你可以更改代码。此外<代码>日期('n')代码>返回不带前导零的月份。和日期('j')代码>返回不带前导零的日期。我不能使用日期函数,因为我的字符串格式是.csv文件中的(2012.09.05 23:50)。所以我需要把09和05转换成9和5。你知道我该怎么做吗?谢谢
Upcoming: 2012.09.05 23:50 | Timestamp:1323129000
Current: 1346855221
Current SIM: 1346855220
var_dump(9); // int 9
var_dump(09); // int 0
var_dump(07); // int 7
var_dump(17); // int 17
var_dump(017); // int 15
$str = '2012.09.05 23:50';
$str = str_replace(".", "/", $str);
$timestamp = strtotime($str);