比如我有个约会:我们可以为日期的__toString()方法设置默认日期格式吗?
$date = mktime();
而且在出项目,我有很多palces被我们使用
echo $date
我们可以更改日期的格式在这种情况下?我们怎样才能做到这一点?
比如我有个约会:我们可以为日期的__toString()方法设置默认日期格式吗?
$date = mktime();
而且在出项目,我有很多palces被我们使用
echo $date
我们可以更改日期的格式在这种情况下?我们怎样才能做到这一点?
__toString
魔法只能为类/对象声明。由于mktime
返回一个整数,所以不能重载它。
自PHP 5.2以来有DateTime类。从技术上讲,你可以创建自己的MyDateTime
,它扩展了内置的一个(或者简单地创建你自己的DateTime类)并在那里重载__toString
,以表示你想要的任何默认日期/时间字符串。
如果你想坚持mktime
(其中委托的方式,返回一样time
时没有参数传递给它),你可以使用date
或stftime
:
$dateTime = date('Y-m-d H:i:s', $time);
$dateTime = strftime('%Y-%m-%d %H:%M:%S', $time);
退房的date功能在PHP。示例#3和#4可以很好地满足您的要求。
建立在Evan的回应之上:即使您没有PHP 5.2.0或更高版本,date()函数也会格式化时间。
你可以包装在自己的自定义类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
调用。这应该不难。