- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我正在扩展 DateTime
,添加一些有用的方法和常量。
当使用 new
创建一个新对象时,一切都很好,但是当使用静态方法 createFromFormat
时,它总是返回原始的 DateTime
对象并且当然没有任何子方法可用。
我正在使用以下代码来规避此问题。这是最好的方法吗?
namespace NoiseLabs\DateTime;
class DateTime extends \DateTime
{
static public function createFromFormat($format, $time)
{
$ext_dt = new self();
$ext_dt->setTimestamp(parent::createFromFormat($format, time)->getTimestamp());
return $ext_dt;
}
}
最佳答案
这是要走的路。但是,由于您想做的似乎是使 DateTime 类可扩展,我建议您使用 static
而不是 self
:
namespace NoiseLabs\DateTime;
class DateTime extends \DateTime
{
static public function createFromFormat($format, $time)
{
$ext_dt = new static();
$parent_dt = parent::createFromFormat($format, $time);
if (!$parent_dt) {
return false;
}
$ext_dt->setTimestamp($parent_dt->getTimestamp());
return $ext_dt;
}
}
如果您不打算扩展类(class),则没有必要,但如果有人这样做,这将阻止他再次执行相同的解决方法。
关于php - 使 DateTime::createFromFormat() 返回子类而不是父类,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5450197/
运行 PHP 5.3.28 我有一个特定的日期作为 strtotime 阻塞的字符串返回,所以我想尝试 DateTime::createFromFormat(),但是尽管尽了最大努力还是出现了错误。
我不知道为什么我会收到此错误或如何修复它。 Call to a member function format() on a non-object createFromFormat 代码: $date
::createFromFormat() 结果提前一个月: var_dump($_GET['archive']); var_dump(Carbon::createFromFormat('m/Y', $
我的日期格式如下:2014 年 5 月 21 日星期三。 为了将此日期保存在数据库中,我尝试将其转换为日期时间,如下所示: $f['date'] = $_POST['date']; $date = D
我的日期格式如下:2014 年 5 月 21 日星期三。 为了将此日期保存在数据库中,我尝试将其转换为日期时间,如下所示: $f['date'] = $_POST['date']; $date = D
我如何使用 DateTime::createFromFormat 来捕获这样的日期的开始时间和结束时间: Sunday, March 29, 201510:00 AM - 12:00 PM 我需要将其
我不知道如何获取此 PHP 代码来将我的时间格式化为 MySQL 时间格式。一直给我一个错误:“找不到两位数的秒”。 这是 PHP 代码: "; var_dump(DateTime::getLas
我有一个代表周数和年份的字符串,我想输出本周的星期日。 PHP 示例: $dateString = '502016'; $dateObject = DateTime::createFromFormat
今天,\DateTime::createFromFormat 函数的行为让我感到困惑。 在我的例子中,我有一个字符串,代表以下格式的日期 m/Y (05/2017)。当我想将字符串转换为 DateTi
您好,我似乎无法让日期时间方法按预期工作?我可能做错了什么? // Passes OK $dateTime = DateTime::createFromFormat('d/m/Y', '12/12/2
我必须在日期中转换 DayOfYear 值。 我在 2016 年的第 70 天尝试关注: php -r 'var_dump(DateTime::createFromFormat("z Y","69 2
我想将日期形式从 d/m/Y 转换为具有时区偏移量的 Y-m-d。我可以使用以下代码将 d/m/Y 转换为 Y-m-d: $date = DateTime::createFromFormat('d/m
function validateDate($date, $format = 'm-Y') { $d = DateTime::createFromFormat($format, $date);
我在 debian 8 上使用 php 5.6.17。设置 owncloud 后,我注意到, 由 owncloud(不是由 apache)自行编写的日志具有错误的时区。 我对此进行了一些调查,似乎该行
我有这个代码块,用于在使用 DateTime::createFromFormat() 提交到数据库插入之前验证格式正确的日期.我期望日期格式将“DD/MM/YYYY”转换为“YYYY-MM-DD”,否
我有一串日期: 25/08/2012 我在这里尝试将其转换为 DateTime 对象,以便将其保存到 MySQL 数据库中。我的后端架构有一个准备接收此数据的 DateOfPrint 日期 列。 这是
PHP - DateTime::createFromFormat — 返回根据指定格式格式化的新 DateTime 对象 这个有效: $var = DateTime::createFromFormat
这个问题在这里已经有了答案: PHP DateTime::createFromFormat behavoiur (2 个答案) 关闭去年。 从字符串进行的日期转换返回第二个月(二月)的错误值: $d
我正在尝试在 php 中转换日期格式。 以下代码会产生持久性错误 $myDate = "31/12/1980"; $myDateTime = DateTime::createFromFormat('d
我正在扩展 DateTime,添加一些有用的方法和常量。 当使用 new 创建一个新对象时,一切都很好,但是当使用静态方法 createFromFormat 时,它总是返回原始的 DateTime 对
我是一名优秀的程序员,十分优秀!