カテゴリー
SugiBlog Webエンジニアのためのお役立ちTips

日付の差を求める [PHP]

2つの日付の差を求めるサンプルです。
DateTimeクラスを使用します。

まずは2つの日付のオブジェクトを生成します。

$datetime1 = new DateTime('1981-04-22');
$datetime2 = new DateTime('1981-01-01');

DateTime::diffメソッドで日付の差を求めます。
返り値にはDateIntervalオブジェクトが返ります。

$interval = $datetime1->diff($datetime2);

DateIntervalオブジェクトのプロパティ

y
m
d
h 時間
i
s
invert 差が負の場合は1、そうでない場合は0
days 日数

例)2つの日付の差となる日数を出力する

print $interval->days;

また、フォーマットした文字列を取得したい場合はDateInterval::formatメソッドを使用します。
続きを読む…»

3,203 views

jQueryプラグイン「bxSlider」を使う

スライドショーを実装してくれる「bxSlider」をご紹介します。
これまでにもスライドショーを実装できる色々なプラグインをご紹介しましたが、
最近はこれをよく使います。

bxSlider

まずはjQueryを読み込む。

<script src="./jquery-1.9.1.min.js"></script>

※ちなみに、jQueryが3.1.1だとエラーが発生しました。

続いてbxSliderのファイルを読み込みます。

<link href="./bxslider/jquery.bxslider.css" rel="stylesheet" />
<script type="text/javascript" src="./bxslider/jquery.bxslider.min.js"></script>

スライドさせたい内容を用意します。

<ul class="bxslider">

    <li>
        <img src="./images/exam_picture1.jpg">
    </li>

    <li>
        <img src="./images/exam_picture2.jpg">
    </li>

    <li>
        <img src="./images/exam_picture3.jpg">
    </li>

</ul>

まずは簡単に実装してみましょう。

<script type="text/javascript">
<!--//
(function($) {
    $(document).ready(function(){

        $('.bxslider').bxSlider({
            auto: true,
            autoHover: true,
        });

    });
})(jQuery);
//-->
</script>

続きを読む…»

4,993 views

DNSSEC最上位の暗号鍵更新に対する対応

サーバーを自前で運用している方にはとても重要な内容でした。
私が管理しているサーバーは問題なかったのですが、念のため覚書として記しておきます。

参考にさせていただいたサイト
https://cloudadvisor.jp/blog/dnssec_update

DNSが「ルートゾーンKSKの更新」に対応されているか確認
以下のコマンドを打ちます。

dig +bufsize=4096 +short rs.dns-oarc.net txt

返ってくる答えの中で「at least」の後にある数値が1424以上であれば問題ないそうです。

1,226 views

iMessageステッカー「白目うさぎのビビ」

LINEスタンプをiOSで使えるiMessageステッカーに移植しました。

セリフなしのタイプなので、メッセージと一緒に幅広くお使いいただけます。


現在は非公開のため、AppStoreへのリンクは削除しました。(18/11/05)

1,152 views

UIViewのアニメーション

今回はUIViewやUIButtonをアニメーションさせる方法をご紹介します。

まずはアニメーションさせる適当なViewを作成します。

let sampleView = UIView()

sampleView.frame.size = CGSize(width: 120, height: 120)
sampleView.center = CGPoint(x: 60, y: 60)
sampleView.backgroundColor = UIColor.white
sampleView.layer.borderColor = UIColor.cyan.cgColor
sampleView.layer.borderWidth = 2

view.addSubview(sampleView)

作成したViewをアニメーションさせるにはUIView.animateメソッドを使用します。
ここでは大きさを変更してみましょう。
中心点も設定しているのは、大きさを変更すると左上を起点に大きさが変わってしまうためです。

UIView.animate(withDuration: 0.5, animations: {
    self.sampleView.frame.size = CGSize(width: 80, height: 80)
    self.sampleView.center = CGPoint(x: 60, y: 60)
}, completion: { Void in
    // アニメーション完了時の処理を記述します
})

次に、大きさと角丸の半径をアニメーションで変更してみたいと思います。
サンプルとして、標準カメラアプリの動画撮影ボタンのようなボタンを作成してみましょう。
実際の撮影処理はしていません。

まずは必要な宣言

let shutterView = UIView()
let shutterButton = UIButton()
var isRecording: Bool = false

Viewを作成するメソッドを作成します。

func makeShutterView() {
    shutterView.frame.size = CGSize(width: 74, height: 74)
    shutterView.center = CGPoint(x: 45, y: 45)

    let shutterCircle = UIView()
    shutterCircle.frame.size = CGSize(width: 76, height: 76)
    shutterCircle.center = CGPoint(x: 45, y: 45)
    shutterCircle.layer.borderColor = UIColor.white.cgColor
    shutterCircle.layer.borderWidth = 4
    shutterCircle.layer.cornerRadius = 38.0
    shutterView.addSubview(shutterCircle)

    shutterButton.frame.size = CGSize(width: 60, height: 60)
    shutterButton.center = CGPoint(x: 45, y: 45)
    shutterButton.backgroundColor = UIColor.red
    shutterButton.layer.cornerRadius = 30.0
    shutterButton.addTarget(self, action: #selector(onClickRecordingButton), for: .touchUpInside)
    shutterView.addSubview(shutterButton)

    view.addSubview(shutterView)
}

続きを読む…»

3,665 views