例如我有一个日期:
$date = mktime();
在项目中,我使用了很多地方
echo $date
在这种情况下,我们可以更改日期格式吗?我们怎么做到?
答案 0 :(得分:2)
__toString
魔术方法只能为类/对象声明。由于mktime
返回一个整数,因此不能重载它。
自PHP 5.2起,有DateTime类。从技术上讲,您可以创建自己的MyDateTime
扩展内置的({或者简单地创建自己的DateTime类)并在那里重载__toString
,以表示您想要的任何默认日期/时间字符串。
如果你想坚持使用mktime
(当没有传递任何参数时,返回与time
相同),你可以使用date
或{{1 }}:
stftime
答案 1 :(得分:1)
您可以将PHP日期处理包装在您自己的自定义类中,以实现自定义__toString()
值:
class MyDate
{
private $date;
private $format = 'r';
public function __construct()
{
$this->date = mktime();
}
public function setFormat($format)
{
$this->format = $format;
}
public function __toString()
{
return date($this->format, $this->date);
}
}
然后您可以将其称为以下内容:
$date = new MyDate();
echo $date; // "Fri, 12 Nov 2010 17:21:28 +0100"
$date->setFormat('d/m/Y');
echo $date; // "12/11/2010"
如果您想使用自定义日期执行此操作,则必须编写功能以将它们从构造函数传递到mktime
调用。这应该不难。
答案 2 :(得分:0)
答案 3 :(得分:0)
查看PHP中的date函数。示例#3和#4可以很好地满足您的要求。
答案 4 :(得分:0)
基于Evan的回复:即使您没有PHP 5.2.0或更高版本,date()函数也会格式化时间。