PHP日期函数输出格式为1月15日星期日

PHP日期函数输出格式为1月15日星期日,php,Php,输入日期格式DD-MM-YYYY 我在会话变量$u Session['date']中存储了一个预订日期,日期格式为DD-MM-YYYY。我想传递这个日期'l jS\of F Y',这样我就可以在1月15日星期日之前发出以下消息 我可以用date来做这个,或者我必须使用其他函数。我用谷歌搜索了它,但找不到太多,因为我对php还不熟悉 如蒙答复,不胜感激 $date = date('l jS \of F Y', strtotime ( $_SESSION['Date'] )); 这是你提供的,假设

输入日期格式DD-MM-YYYY

我在会话变量$u Session['date']中存储了一个预订日期,日期格式为DD-MM-YYYY。我想传递这个日期'l jS\of F Y',这样我就可以在1月15日星期日之前发出以下消息

我可以用date来做这个,或者我必须使用其他函数。我用谷歌搜索了它,但找不到太多,因为我对php还不熟悉

如蒙答复,不胜感激

$date = date('l jS \of F Y', strtotime ( $_SESSION['Date'] ));
这是你提供的,假设你用作参考

date('l jS \of F Y' ,strtotime("15-01-2012"));
您可以使用该函数将存储的字符串转换为时间戳,然后时间戳用作日期函数的第二个参数

编辑

正如Paul所说,使用DateTime::createFromFormat技术是一种更安全的方法,但它仅适用于PHP5.3.0及更高版本

<?php
$date = DateTime::createFromFormat('j-M-Y', '15-01-2012');
echo $date->format('l jS \of F Y');
?>
看看PHP手册中的

他们有这样一个例子:

<?php
$date = date_create_from_format('j-M-Y', '15-Feb-2009');
echo date_format($date, 'Y-m-d');
?>

因为您使用的日期格式不明确,所以最好使用DateTime对象。想想2011年12月12日的情况。

很简单,只需使用PHP日期引用,并将您想要的任何内容放在日期中,而不是您的'l jS\of F Y'——只要它是一个真实的日期格式no,我的意思是2011年12月12日的日期格式不明确,因此Strotime不知道前两个代币指的是什么。在这种情况下,您可以将其分解,然后将其全部重新放入。谢谢,也感谢其他也正确回复的用户。。但我的逻辑选择是第一个正确答案Sam为@ashley,日期格式不明确,因此使用date\u create\u from更安全_format@paul-编辑以包含您的解决方案,尽管这仅适用于PHP>=5.3是的,这绝对是DateTime对象的问题!分解重新组装可能是最广泛支持的5.2的官方支持于2010年7月结束,因此5.3作为一项要求应该不会有问题。@Maerlyn-不应该,但一些提供商仍在使用5.2或更早版本。仍然在5.2上,因此答案的第二部分缺少演示链接!
<?php
$date = date_create_from_format('j-M-Y', '15-Feb-2009');
echo date_format($date, 'Y-m-d');
?>