2010年3月8日月曜日

PHP 日付の計算(加算、減算)

PHPでの日付の計算(加算、減算)でーす。
使うのはこちら↓↓

strtotime関数
int strtotime ( string 英文字の日時 [, int 日付])
※「int 日付」は初期値がnow(現在)

これを使うと日、週、月、年の加算、減算が簡単に計算できます。
時・分・秒の加算、減算もできます。

「英文字の日時」の部分は加算、減算したい単位を設定。
day、week、month、year、hour、minute、second等。
ちなみに now は現在の時間です。

使い方はこんな感じ。

print "昨日:" . date("Y/m/d",strtotime("-1 day" ,strtotime(now))) . "<BR>";

print "今日:" . date("Y/m/d",strtotime("now")) . "<BR>";

print "明日:" . date("Y/m/d",strtotime("1 day")) . "<BR>";

print "明日:" . date("Y/m/d",strtotime("1 day" ,strtotime(now))) . "<BR>";

print "1週間後:" . date("Y/m/d",strtotime("1 week" ,strtotime(now))) . "<BR>";

print "1月後:" . date("Y/m/d",strtotime("1 month" ,strtotime(now))) . "<BR>";

print "1年後:" . date("Y/m/d",strtotime("1 year" ,strtotime(now))) . "<BR>";

print "指定した日付の1月前:" . date("Y/m/d",strtotime("-1 month" ,strtotime("2010/3/20"))) . "<BR>";

print "年月日時分秒:" . date("Y/m/d H:i:s",strtotime(now)) . "<BR>";

print "1時間後:" . date("Y/m/d H:i:s",strtotime("1 hour" ,strtotime(now))) . "<BR>";


結果はこうなります。

昨日:2010/03/07
今日:2010/03/08
明日:2010/03/09
明日:2010/03/09
1週間後:2010/03/15
1月後:2010/04/08
1年後:2011/03/08
指定した日付の1月前:2010/02/20
年月日時分秒:2010/03/08 23:36:39
1時間後:2010/03/09 00:36:39

ただ、残念な事に月の計算ではうまくいかない事があります。

print "指定した日付の1月前:" . date("Y/m/d",strtotime("-1 month" ,strtotime("2010/3/31")));

この場合結果が

指定した日付の1月前:2010/03/03

となってしまいます。
どうも2月31日がないので、「2月28日+3日=3月3日」という感じのようです。この点は注意が必要ですね。

2010年2月17日水曜日

VBS(VBScript)+WSHで簡易ランチャー

VBS(VBScript)&WSHについてでーっす。
VBS+WSHを使った簡易ランチャー作成のご紹介。

仕事上あっちのフォルダ、こっちのフォルダ、そっちのフォルダと開いたり、アプリケーションを起動したりとガチャガチャ仕事をしてるのですが、いちいちマウス使うのも面倒なので、何か無いかなーと思ったときに、VBSを見つけました。
要はVBScriptなのだけれども、テキストで書いて拡張子を「vbs」で保存すれば出来上がりなので気楽に作成できます。
そしてWSHを利用するとフォルダやアプリケーションを起動もできるので、VBS+WSHで簡易ランチャーを作ってみました。

== x_簡易ランチャー.vbs ==

'--------------------------
' 簡易ランチャー
'--------------------------

'変数定義
Dim objWSH 'Wscript.Shellオブジェクト格納
Dim l_kinou '機能選択
Dim path '起動させるアプリ等のパス
Dim l_default_kinou '機能の初期値
l_default_kinou = 0 '初期値は0

'機能選択 0:IE8、1:Firefox、2:Google Chrome、9:Cドライブ 初期値0で表示
l_kinou=inputbox("ソフト 0:IE8、1:Firefox、2:Google Chrome","",l_default_kinou)


'入力された数字によってソフト、フォルダのパスをセット
if l_kinou = "0" then
  path = "C:\Program Files\Internet Explorer\iexplore.exe"
elseif l_kinou = "1" then
  path = "C:\Program Files\Mozilla Firefox\firefox.exe"
elseif l_kinou = "2" then
  path = "C:\Program Files\Google\Chrome\Application\chrome.exe"
elseif l_kinou = "9" then
  path = "C:\"
end if

if path <> "" then
  'Wscript.Shellオブジェクト作成
  Set objWSH = CreateObject("Wscript.Shell")

  '実行
  objWSH.Run """" & path & """"

  'オブジェクト変数をクリア
  Set objWSH = Nothing
end if

テキストに上記の内容を書き込み、「x_ランチャー.vbs」で保存。ファイルをクリックすると以下の画面がでてきます。

<機能選択画面>


この画面はVBScriptの「inputbox」によるもので、ここに入力された数字によって処理を分けるといった感じです。
そしてアプリ起動やフォルダを開くのにWSHを使います。

 Set objWSH = CreateObject("Wscript.Shell")

でWscript.Shellオブジェクト作成して

 objWSH.Run """" & path & """"

で、path変数に設定されているアプリの起動やフォルダのオープンが行われます。(Runする場合には、起動するプログラムやフォルダを「"」で囲む必要があるのですが、VBSscriptで「"」をあらわすのに「""""」となります。「""」とするとエスケープされて「"」と認識されるようなので、真ん中の「""」が「"」となり、その前後の「"」は、単に文字列をあらわすための「"」となります。)

これで数字をいれればアプリ、フォルダを開く事のできる簡易ランチャーができるのですが、キーボードからサクッとこの簡易ランチャーを開くために、スタートの中にショートカットを作成します。

<スタートメニューにショートカット作成>


これで「ウインドウズボタン⇒xキー」で簡易ランチャーが起動できます。
ちょっとした事なんだけれども、少しだけ楽ちんになります。

(書き終わった後に思ったんだけど、ソースの部分はテキストエリアのがいいかなと。今度直そうかなー。)