我有日期字符串(示例'2014-06-06 12:24:48'
)。I用其他格式显示什么(例如'06.06.2014 (12:24:48)'
)。
$date = '2014-06-06 12:24:48';
echo date('d-m-Y (H:i:s)', strtotime($date));
输出日期是否总是与输入日期相同?
date('Y-m-d H:i:s') === date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s')));
// Always true?
date('Y-m-d H:i:s') === date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s')));
// Always true?
虽然该语句在大多数情况下为真,但它将并不总是为真,因为左边的(date('Y-m-d H:i:s')
是在右边的date('Y-m-d H:i:s')
之后求值的,所以如果代码在第二个数字即将改变之前运行一纳秒,两个日期将具有不同的第二个数字。
您可以通过运行下面的代码来验证这两个语句并不总是相等的,它最终将输出"False"。
while(true) {
$x = (date('Y-m-d H:i:s') === date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s'))));
if(!$x) {
exit("False");
}
}
但是,如果为每个date
调用提供相同的时间戳,则语句将始终相等
$time = strtotime(date('Y-m-d H:i:s'));
date('Y-m-d H:i:s',$time) === date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s',$time)));
//Always true
是,您可以更改日期格式,如
$date = '2014-06-06 12:24:48';
echo date('d-m-Y (H:i:s)', strtotime($date));
更多格式:- http://www.php.net//manual/en/function.date.php
输出将不会和你输入的日期相同,这取决于你输入的日期格式如果你的日期格式是-
$date = date('Y-m-d H:i:s');
,输入日期格式为
$input_date = date('Y/m/d H:i:s');
则需要转换输入日期格式以匹配其他日期,如
$input_date = date('Y-m-d H:i:s', strtotime($inputdate));
否则你的输入日期格式是相同的,那么不需要转换
then match if($date == $input_date)
是。这两个日期将始终是相同的日期和时间-以不同的格式:
2014-06-06 12:24:48
06-06-2014 (12:24:48)
<<p> 看到演示/strong> 编辑
声明:date('Y-m-d H:i:s') === date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s')));
将
date()
的第二个参数默认为当前时间戳。
strtotime(date('Y-m-d H:i:s'))
为当前时间戳。
所以这两个语句:
date('Y-m-d H:i:s')
和
date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s'))
在逻辑上是相同的
另一个演示编辑2
FuzzyTree的回答指出,虽然这两个陈述通常是正确的,但它们并不总是正确的。更多细节请看他的回答。