共通関数とか独自実装してるのをよく見るけどダサい 継承すれば透過的に使えてかっこいい
class MyDateTime extends \DateTime
{
public function format ($f) {
$s = parent::format($f);
$daynames = ['日', '月', '火', '水', '木', '金', '土'];
$dayname = $daynames[parent::format('w')];
return str_replace('x', $dayname, $s);
}
}
print (new MyDateTime())->format('Ymd(x)');
簡単だけどコードがぐっとシンプルになってとても便利なのでよく使う
多言語対応も簡単
class MyDateTime extends \DateTime
{
const DAYNAME_SET = [
'ja' => ['日', '月', '火', '水', '木', '金', '土'],
'ru' => ['вс', 'пн', 'вт', 'ср', 'чт', 'пт', 'сб']
];
public function format ($f, $lang = 'ja') {
$s = parent::format($f);
$daynames = self::DAYNAME_SET[$lang];
$dayname = $daynames[parent::format('w')];
return str_replace('x', $dayname, $s);
}
}