皆さまこんにちは。ウチイダユウゴです!
2019年9月は、消費税増税前の駆け込み需要が発生するので受注・納品が増えそうですね。
9月中に受注したものを8%の税率で計算し、10月に入ってからは自動で10%の税率を適用する必要がありましたので、いつか来るかもしれない次回の増税に備えてメモしておきます。
phpでの対応だったので、簡単でした。すばらしい!
始めに要約
dateで日付フォーマットを作成して、ifの条件として比較するだけです。
予期しない動作をしないように、タイムゾーンの指定をしておきましょう~
動作を確認した環境
- Cent OS 7.6.1810
- Apache 2.4.6
- PHP 7.3.9 (cli)
phpは日付フォーマットの前後関係を比較できる
phpの地味に便利だなあと思う点です。
同じ形式の日付フォーマットなら、大小比較の条件式にできるんです!
<?php
//タイムゾーンを設定
date_default_timezone_set('Asia/Tokyo');
//dateフォーマットを作成
$past = date('2000-01-01');
$future = date('2100-01-01');
echo '$past < $future : '; var_dump($past < $future); //trueが返ります
echo '$past > $future : '; var_dump($past > $future); //falseが返ります
こんな感じで、日付を比較してあげるだけで特定の期間を対象にした処理が作れます。
気を付けたいのは、タイムゾーンの設定ですね。
これを指定しておかないと、時差の問題で想定外の挙動を起こす恐れがあります。
国内サービスなら、「Asia/Tokyo」です。
今回は、消費税増税の対応を行うことが目的なので、日本時間を指定してます。
参考までに、PHPでサポートしているアジアのタイムゾーン貼っときますね…(笑)
指定した日の前後で処理を切り替える
当日の日付は、date(‘Y-m-d’)で取得できます。
今回は「2019年10月1日以降かどうか」で分岐したいので、比較するのはdate(‘2019-10-01’)です。
実際のコードはこんな感じになります。
<?php
//タイムゾーンを設定
date_default_timezone_set('Asia/Tokyo');
//dateフォーマット
$today = date('Y-m-d'); $deadLine = date('2019-10-01');
//消費税率
$taxRate = 0.08;
if($today > $deadLine){ $taxRate = 0.10; }
あとは、消費税率にあわせて税込み価格を算出すればOKです!
まとめ:増税対応がめんどくさい。
「令和」の元号への対応に続いて、消費税率への対応もあるため各ベンダーさんは大わらわなことと思います。
お勤めご苦労様です…。m(__)m
今回は軽減税率も絡んでくるので、日用品を扱っている小売店さんはさらに大変なことでしょう。
非IT企業のなんちゃってプログラマーなウチイダは、本職のITエンジニアの皆さまを本当に尊敬しております。
敬意を表しつつ今日のところはここまで!
最後までお読みいただきありがとうございました(/・ω・)/