ためすう

phpのdate関数の計算で気をつけること

2018-01-15

目的

php で date関数を使用するときに少し嵌るところがあったので、

メモとして残しておきます。

日付の計算で1ヶ月後の末日を求めるときに 2ヶ月後の末日を求めてしまうという問題に遭遇しました。

解決策

事象の確認

sample.php

<?php

date_default_timezone_set('Asia/Tokyo');
$time = '2017/10/31';

echo date('Y-m-t', strtotime('+1 month ' . $time)) . "\n";

下記を実行する

$ php sample.php

結果

2017-12-01 00:00:00

解決策

月の1日から末日を計算する

<?php

date_default_timezone_set('Asia/Tokyo');
$time = '2017/10/01';

echo date('Y-m-t', strtotime('+1 month ' . $time)) . "\n";

結果

2017-11-30

gitのファイル名で日本語を使うとき

2017-12-24

目的

日本語ファイルを git で管理しているのですが、

ステータスを確認したときに、日本語がきちんと表示されていなくてファイルが判別できなかったので、

日本語で表示する方法がないかを調べました。

解決策

$ git config --local core.quotepath false

おまけ

.git/config と ~/.gitconfig の読み込み順番

1. ~/.gitconfig
2. .git/config (リポジトリの中)

参考

MacVimを使うときに設定が反映されない

2017-12-03

目的

下記に vim の設定を書いていたのですが、

~/.vimrc

MacVimには反映されないので原因を調べました。

解決策

方法1. ~/.gvimrc を編集する

MacVimでは ~/.vimrc が読み込まれないようなので、


source ~/.vimrc


私はこちらの方法で解決しました。

#### 方法2. MacVim に入っている設定を削除する(※未確認)

こちらはあまり良い方法ではなさそうです。

最後の手段くらいに考えておいてください。


MacVim にビルドインされた```vimrc```の方が読み込まれいているのが原因のようです。

(下記のコマンドは試していないため、注意してください!)

$ rm /Applications/MacVim.app/Contents/Resources/vim/vimrc $ rm /Applications/MacVim.app/Contents/Resources/vim/gvimrc ```

参考

Middlemanのtagで日本語名を使うと空文字になってしまう問題

2017-11-26

目的

Middlemanのtagを入力するときに、日本語名を使うと

空文字になってしまうという問題に遭遇しました。

解決策

tag名を全てエンコードする方法を採用しました。

1. config.rb を修正する

$ vim config.rb

追加内容

after_configuration do
  module TagPagesExtension
    def link( tag )
      safe_tag = CGI.escape(tag)
      apply_uri_template @tag_link_template, tag: safe_tag
    end
  end
  Middleman::Blog::TagPages.prepend(TagPagesExtension)
end

参考

https://blog.leko.jp/post/how-to-use-japanese-tag-in-middleman/

MiddlemanにGoogleアナリティクスを導入

2017-11-25

目的

Middleman でサイトを運営しており、

Googleアナリティクスを導入するための Gem があったので、

Gemに慣れるために利用しました。

(scriptを埋め込むだけではあるのですが)

解決策

1. Gemfile に gem を追加する

middleman-google-analytics という Gem を利用しました。

$ vim Gemfile

追加した記載

gem 'middleman-google-analytics', '~> 2.0'

2. config.rb の修正

$ vim config.rb

下記の記載を追記します。

activate :google_analytics do |ga|
  ga.tracking_id = 'UA-XXXXXXX-X'
end

3. Middlemanのレイアウトに埋め込み

<% if build? %>
  <%= google_analytics_tag %>
<% end %>

参考

http://webfood.info/middleman-how-to-use-google-analytics/#configrb

Nginxでbasic認証を設定する

2017-11-23

目的

nginxでbasic認証のユーザーを追加した時のメモになります。

解決策

※ nginxの設定ですでにbasic認証が使えている状態とします。

ユーザの追加

$ sudo htpasswd /etc/nginx/.htpasswd [ユーザ名]

結果

New password:
Re-type new password:
Adding password for user [ユーザ名]

ユーザの削除

$ sudo htpasswd -D /etc/nginx/.htpasswd [ユーザ名]

結果

Deleting password for user hogehoge

ユーザの追加(新しいファイルにする)

$ sudo htpasswd -c /etc/nginx/.htpasswd [ユーザ名]

結果は -cオプションをつけない場合と同様になります。

※ -c オプションは既存の設定が上書きされてしまうので注意してください

マークダウンのリンクを別タブて開く

2017-11-19

目的

マークダウンのリンクを別タブて開く方法が分からなかったので調べました。

今回は Middleman で試しました。

解決策

選択肢

参考リンクによれば、方法は3つありそうでした。

1.HTMLで記述する

<a href="#" target="_blank">リンク</a>

2.マークダウンのエンジンを変えて、下記の記法を使う

[link](url)

3.ページ読み込み時にjsでaタグに対してtarget属性を付与

実施

HTML書きたくないし、ページロードする度にjsが実行されるのもなあ…

ということで、

今回は、「2.マークダウンのエンジンを変える」でやってみます。

Middleman はデフォルトでこの記述方法を使用できるようです。

ローカル環境の Middleman で試したところ確認できました。

次に

プレビューで確認ができる previm には反映されてなかったので対策が必要そうでした。

参考

unixのlsとrmコマンドでエイリアスを設定する

2017-11-18

目的

開発でよく使うunixコマンドにエイリアスを設定します。

rmは間違えて実行してしまった時のために、確認を出します。

lsは中身を確認する時に -l オプションをよく使うのでエイリアスを設定します。

解決策

  1. 下記の設定ファイルをvimで開く

    $ vim ~/.bash_profile
    
  2. 下記の内容を追記する (@ ~/.bash_profile)

    alias ll='ls -l'
    alias rm='rm -i'
    
  3. 設定ファイルを読み込む

    $ source ~/.bash_profile
    

gitコマンドショートカット設定

2017-11-12

目的

gitをよく使うのですが、コマンドを全部入力するのが辛くなってきたので、エイリアスを設定します。

解決策

  1. 下記の設定ファイルをvimで開く

    $ vim ~/.bash_profile
    
  2. 下記の内容を追記する (@ ~/.bash_profile)

    alias g='git'
    alias gs='git status'
    alias gc='git commit'
    alias ga='git add'
    alias gac='git commit -a'
    
  3. 設定ファイルを読み込む

    $ source ~/.bash_profile
    

cronの設定とログを見る

2017-11-11

目的

cronの設定方法と実行確認のためにログを見る機会があったので調べてみました。

解決策

まず、cronを設定する方法です。

unixのユーザーが「hogehoge」だとした場合、下記コマンドで編集できます。

$ vim /var/spool/cron/hogehoge

あるいは、下記でも良いです。

$ crontab -e

cronを通して実行されたかを確認するには下記コマンドを実行します。

$ less /var/log/cron

参考URL