タグ

タイムゾーンに関するtekimenのブックマーク (2)

  • 18分59秒をめぐって日本標準時の歴史をひもとくことに - エムスリーテックブログ

    この記事は エムスリー Advent Calendar 2018 12日目の記事です。 こんにちは。エムスリー エンジニアリンググループの三浦(@yuba)です。基盤開発チームというところで各サービスチーム共用のシステムの開発保守に携わっており、そこで見つけた面白い動作を掘っていったら意外な知識にたどり着いたという話をいたします。 化けた日付はどこから来た? あるサービスの管理画面の動作を検証していたときのことです。バリデーションの振る舞いを確かめるためにいくつかテストケースを作りながら実際の動きを試していたところ、不思議な現象を見つけました。 次のように日時入力をするところで年の欄を空のままにして送信したところ⋯ 次のようにおかしな日時が設定されたのです。 0013年? 18分59秒? 入力した覚えのない数字が3つも紛れ込んでいます。 これが C で書かれたプログラムなら何か不定値を拾っ

    18分59秒をめぐって日本標準時の歴史をひもとくことに - エムスリーテックブログ
  • PHPでISO8061に準拠した日付フォーマットをバリデーションする - はらへり日記

    この記事は PHPアドベントカレンダー13日目の記事です。大遅刻ですごめんなさい。 qiita.com 正直、なぜか投稿した気になってしまってました…ちゃんとやらなきゃダメですよね気をつけます…。 したいこと すいません。タイトルちょっと厳密に言うと違います。もっというとPHP関係ないかもしれない。 厳密には「ISO8061に従い、かつ年月日秒とタイムゾーンまで指定されているかどうか」バリデーションする方法です。 例えば以下のような書式はISO8061に準拠、かつ上記条件を満たしています。 2016-09-30T12:00:00+09:00 ですが、以下の書式はISO8061に準拠しながらも分秒数は指定されていません。 2016-09-30 とある実装で、分秒数まで指定された状態のバリデーションをかけたい場面があったのでどう実現するか考えました。 ※ 今後、「ISO8061に従い、かつ年月

    tekimen
    tekimen 2016/12/24
    PHPのstrtotimeのみに限っていえば、strtotimeという関数はDSLとしてre2c噛ませているほどなので、「文字列中の時刻にタイムゾーン情報があるかどうか」は指摘通り正規表現で必要な部分を抜き取るしかなさそう…
  • 1