PHP

PHPで日本語の曜日を使いたい

共通関数とか独自実装してるのをよく見るけどダサい 継承すれば透過的に使えてかっこいい

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);
}
}