我正在尝试使用php检查时间戳。但是,$ date变量回显了一个时间戳 1382389873,我用unix转换器epochconverter.com查看它显示2013年10月21日星期一21:11:13格林尼治标准时它的意思是2013年11月5日。任何人都可以看到下面的代码并指出我的错误?感谢。
$today = strtotime(date("d.m.y"));
$c_date = strtotime($CI->session->userdata('c_date'));
$early = strtotime(date("d.m.y")."+2 week");
$date = strtotime("5.11.13");
echo'<br/>';
echo 'test'.$date;
echo'<br/>';
echo 'collection'.$c_date;
echo'<br/>';
echo 'early'.$early;
echo'<br/>';
echo 'today '.$today;
echo'<br/>';
答案 0 :(得分:1)
如果你想指定11月5日,你应该这样做:
$date = strtotime("11/5/13");
echo $date;
echo date("m/d/Y", $date);
输出:
1383609600
11/05/2013
答案 1 :(得分:0)
我为你做了几个测试,似乎你需要把你的年份换成YYYY格式,例如2013:
$date = strtotime("5.11.2013"); // your code
echo $date . "\n";
echo date('d-m-Y', $date);
// timestamp: 1383562800
// converted to date: 05-11-2013
- 编辑 - 正如我在之前的评论中提到的,如果$date
应该与$early
相同,为什么还要打扰手动重新分配呢?为什么不使用$early
?
答案 2 :(得分:0)
其他人在我做之前回答了这个问题,但这里是我的测试和补充对话的注释... strtotime()将字符串转换为时间整数。 date()将整数转换为(可选的格式化)字符串。我会说你总是可以使用它而不是epochvonverter.com ......但现在我明白你为什么去那里了。另请注意,手册中说明了这一点:
“注意:m / d / y或dmy格式的日期通过查看各个组件之间的分隔符来消除歧义:如果分隔符是斜杠(/),则假定为美国m / d / y;而如果分隔符是破折号( - )或点(。),则假定为欧洲dmy格式。 为了避免潜在的歧义,最好尽可能使用ISO 8601(YYYY-MM-DD)日期或DateTime :: createFromFormat()。“ - http://www.php.net/manual/en/function.strtotime.php(该页面上更古怪的东西,顺便说一句)。
非常有趣的是,带点的这个例子不会产生d.m.y,但是h.m.s!我猜那是因为我们正在使用strtoTIME,而不是......呃.. strtoDATE:)
考虑一下:
$integer = 1382389873;
var_dump($integer);
echo "<br>";
//int(1382389873)
$string = date($integer);
var_dump($string);
echo "<br>";
//string(10) "1382389873"
$formatted=date('d.m.y',$integer);
$laterint=strtotime($formatted."+2 week");
var_dump($laterint);
echo "<br>";
// int(1383682213)
$laterstring=date('d.m.y',$laterint);
var_dump($laterstring);
echo "<br>";
// string(8) "05.11.13"
这是多汁的部分:
$date1 = strtotime("5.11.13");
var_dump($date1);
echo "<br>";
$datestring1=date('d.m.y',$date1);
var_dump($datestring1);
//BAD PHP, BAD!
echo "<br>";
$date2 = strtotime("5.11.2013");
var_dump($date2);
echo "<br>";
$datestring2=date('d.m.y',$date2);
var_dump($datestring2);
echo "<br>";
$date3 = strtotime("5/11/13");
var_dump($date3);
echo "<br>";
$datestring3=date('d.m.y',$date3);
var_dump($datestring3);
echo "<br>";
非常有趣的东西,伙计们 - 谢谢大家!对我来说,这个故事的寓意是要始终用4位数字来表达。