Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/270.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
PHP Unix时间戳_Php_Date_Timestamp - Fatal编程技术网

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);