code
相対日時表記に変換
PHPの場合。
function format_relative_date ($date) {
$time = strtotime ($date);
$second = time () - $time;
if ($second < 60) {
return ($second . "秒前");
} else if ($second < 3600) {
return (intval ($second / 60) . "分前");
} else if ($second < 86400) {
return ("約" . intval ($second / 3600) . "時間前");
} else {
return (date ("m/d H:i", $time));
}
}
2010/03/17 09:35 | code
サイトの多言語対応化
アイコンとかフォントのサイト を.htaccessをいじくってコンテントネゴシエーションで多言語対応化 (と言っても2言語だけだけど) した時のメモ。
Think ITの記事 を大いに参考にした。
英語版: index.html.en (デフォルト)
日本語版: index.html.ja
AddLanguage ja .ja
AddLanguage en .en
Options +MultiViews
ForceLanguagePriority Fallback
LanguagePriority en ja
SetEnvIf Cookie (^|\s)lang=\"?(en|ja)\"? prefer-language=$2
SetEnvIf Request_URI \.(en|ja)$ prefer-language=$1
Header append Set-Cookie "lang=%{prefer-language}e;expires=Tue, 1-Jan-2030 00:00:00 GMT;path=/" env=prefer-language
Header append Cache-Control no-cache
多分ちゃんと動いてる。
2010/02/19 16:13 | code
ブロック要素の高さを揃える
高さというより下端だけど。
equal-bottom-nに対応する要素の下端を揃える。
$ (function () {
for (var i = 1; $ (".equal-bottom-" + i).length; i++) {
var block = $ (".equal-bottom-" + i);
var height = 0;
block.each (function () {
height = Math.max ($ (this).offset ().top + $ (this).height (), height);
});
block.each (function () {
$ (this).height (height - $ (this).offset ().top);
});
}
});
2008/12/05 12:35 | code
なんちゃってvalign
やはり出来ると便利なので。
$ (function () {
$ ("div.grid.middle > div.column").addClass ("middle");
$ ("div.grid.bottom > div.column").addClass ("bottom");
$ ("div.grid div.column").filter (".middle, .bottom").each (function () {
var height = 0;
$ (this).siblings ().each (function () {
height = Math.max (height, $ (this).height ());
});
var margin = Math.max (height - $ (this).height (), 0);
$ (this).css ("margin-top", ($ (this).hasClass ("middle") ? Math.floor (margin / 2) : margin) + "px");
});
});
2008/12/04 08:01 | code
テーブルのセルの中をいい感じに
<td><ul /></td>と<td>ほげほげ<ul /></td>、両方ともulが:first-childになるのは困ることが多いので:first-node疑似クラスを使えるようにする。
:-moz-first-nodeと同じ。
jQuery.extend (jQuery.expr [":"], {
"first-node": function (a) {
var b = a.parentNode.childNodes;
for (var i = 0; i < b.length; i++) {
var c = b [i];
if (c.nodeType == 1) {
return c.parentNode.getElementsByTagName ("*")[0] == a;
}
if (jQuery.trim (c.nodeValue)) {
return false;
}
}
return false;
}
});
$ (function () {
$ ("td > :first-node").addClass ("first-node-of-td");
});
2008/11/18 16:32 | code
横幅不定のブロック要素を中央・右揃え
要するに横幅を自動で設定してやるだけ。
$ (function () {
$ (".left, .center, .right").each (function () {
$ (this).css ({
display: "block",
float: "none",
width: $ (this).css ({ display: "inline-block", float: "left" }).width ()
});
});
});
2008/11/15 11:00 | code
ダイアログを出さずにウィンドウを閉じる
window.open以外の方法で開いたウィンドウをwindow.closeで閉じるときに「ウィンドウは、表示中の…」というダイアログを出さずにウィンドウを閉じる。
将来にわたって問題ないのかどうかはあやしい。
window._close = window.close;
window.close = function () {
(window.open ("", "_top").opener = top)._close ()
};
<a href="javascript:window.close ();">閉じる</a>
2008/10/13 16:29 | code
検索キーワードに関連するブログ記事リストを表示
JavaScriptで検索キーワードを取得 して、Google AJAX Search API にぶっこむだけ。
例:
当サイト。
- Googleとかで「 Fugue Icons 」や「 jQuery 注釈リスト 」などと検索
- 検索結果からブログ記事を見る
- 右上とか、ホーム とか
検索キーワードはセッションCookieで保持。
2008/10/02 18:30 | code
