我有日期字符串(示例'2014-06-06 12:24:48'
)。我用其他格式显示什么(例'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?
答案 0 :(得分:4)
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
答案 1 :(得分:1)
是。这两个日期将始终是相同的日期和时间 - 采用不同的格式:
2014-06-06 12:24:48
06-06-2014 (12:24:48)
修改强>
声明:
date('Y-m-d H:i:s') === date('Y-m-d H:i:s', strtotime(date('Y-m-d H:i:s')));
总是通常为真(见编辑2 )。
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's answer指出,虽然这两种说法通常都是正确的,但它们并不总是正确的。有关详细信息,请参阅他的回答
答案 2 :(得分:0)
是的,您可以更改日期格式,如
$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));
否则您的输入日期格式相同,则无需转换
然后匹配if($date == $input_date)