php
qiitaの下書きに眠っていた記事をこちらに吐き出す。2020年6月頃に書いた記事。
foreach文を使って変換するのがあまり好きではなかった。
<?php
function convertToDateTime(array $row)
{
$row['datetime'] = \DateTime::createFromFormat('Y-m-d h:i:sO', $row['datetime']);
return $row;
}
$set_row = [
$set_row = ['id' => 'not modify', 'datetime' => '2020-05-05 02:18:33+00'],
$set_row = ['id' => 'not modify', 'datetime' => '2020-05-05 02:18:33+00'],
$set_row = ['id' => 'not modify', 'datetime' => '2020-05-05 02:18:33+00'],
$set_row = ['id' => 'not modify', 'datetime' => '2020-05-05 02:18:33+00'],
];
var_dump(array_map('convertToDateTime', $set_row));
array_map
を使うとこんな感じで、各カラムについて\DateTime
クラスの変数に変換してくれる。
$ php test.php
array(1) {
[0]=>
array(2) {
["id"]=>
string(10) "not modify"
["datetime"]=>
object(DateTime)#1 (3) {
["date"]=>
string(26) "2020-05-05 02:18:33.000000"
["timezone_type"]=>
int(1)
["timezone"]=>
string(6) "+00:00"
}
}
}
...(以下略
$set_row
の各列にあるdatetime
行は、postgresqlのデータ型の "timestamp with timezone" をselectで引っ張ってきた形式を想定している。指定するフォーマットを変更してもらえば、 "timestamp with timezone" でも同じように変換できると思う。
ちなみに、少し冷静になってさっきの処理をforeach
で書き直すと以下のようになる。
<?php
$set_row = [
$set_row = ['id' => 'not modify', 'datetime' => '2020-05-05 02:18:33+00'],
$set_row = ['id' => 'not modify', 'datetime' => '2020-05-05 02:18:33+00'],
$set_row = ['id' => 'not modify', 'datetime' => '2020-05-05 02:18:33+00'],
$set_row = ['id' => 'not modify', 'datetime' => '2020-05-05 02:18:33+00'],
];
foreach ( $set_row as $
可読性考えると素直にforeach
回したほうがよくね?と思えてきた。
$ php --version
PHP 7.2.24-0ubuntu0.18.04.4 (cli) (built: Apr 8 2020 15:45:57) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies
with Zend OPcache v7.2.24-0ubuntu0.18.04.4, Copyright (c) 1999-2018, by Zend Technologies
今後年齢を重ねていくにおいて,以下のようなことに気をつけて振る舞うようにしたほうがいいかなと思っている. 間違ったことをあえて正さない 相手が間違ったことを言ったとしても,それを場合によっては正さない. その場の雰囲気を乱したり,その人を不快にさせたりしないために. 思いついたギャグを、あえて言わずにかみ殺す 何か話の流れで面白いギャグとかを思いついても,場合によってはそれを口の中で噛み殺して言わない.
Nov 9, 2021apt list --installed 2> /dev/null | awk -F ',| ' '{print $1}' | grep -v '一覧表示' > ./installed_package.txt # cat installed_package.txt | head accountsservice/bionic-updates acl/bionic acpi-support/bionic acpid/bionic adduser/bionic adium-theme-ubuntu/bionic adwaita-icon-theme/bionic
Jan 24, 2021まとめ この本はどんな本? 職人気質・プロのミームを伝染させてくれる本」 内容ピックアップ プロのやりとり 「いつ終わる?」「〇〇日に終わります」 このやり取りで合意が取れれば完了。
Jan 16, 2021ベッドのマットレス レガリア - インシグニアという大塚家具レガリアシリーズのマットレスを購入しました。 高かったですが、2020年最高の買い物は間違いなくこれです。 睡眠の質が大きく高まりました。また、腰痛の症状緩和になりました。 ベッドのフレーム マットレスの新調に合わせてフレームも購入しました。
Jan 10, 2021or
By clicking below, you agree to our terms of service.
New to HackMD? Sign up