[Javascript] 数値の先頭を0埋め(パディング)

数値の桁数を決めて、桁が足りない場合は先頭を0埋めすることがあるので、その方法をメモ。

考え方は、n桁固定にしたい場合、先頭に0を(n-1)個つけて余った先頭の0をsliceで切り捨ててしまうということです。

例えば3桁の場合。

var num = 1;
num = ( '00' + num ).slice( -3 );
console.log(num);
// → “001” が出力される


ES6のTemplate literalを使用した場合は以下のようになる。

let num = 1;
num = (`00${num}`).slice(-3);
console.log(num);
// → “001” が出力される


注意点としては、元のデータがn桁を超えてしまった場合は先頭が切り捨てられてしまうので、
あらかじめlengthメソッドを使って長さのチェックを入れたほうがいいかもしれない。





[Javascript] Dateを1日ずらす

日付を翌日、もしくは前日にしたいということがしばしばあるのでメモ。

// 翌日にする
const date = new Date();
date.setDate(date.getDate() + 1);

// 前日にする
const date = new Date();
date.setDate(date.getDate() - 1);


月跨ぎが面倒かと思っていたら、setDate()で簡単にできた。
2016/05/31を上記方法で、setDate()で+1したら2016/06/01にちゃんと進められた!!





[CentOS6.5] Linux環境にnode.jsをインストール

CentOS6.5 に node.js をインストールしたのでメモ。

①epelリポジトリを追加
rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm

②yumでインストール
yum install nodejs npm --enablerepo=epel

※①はすでに、他で追加済みであれば省略できる
追加しようとしても、既にインストールされていますって言われちゃうだけですが。。。
----------------------------------------------------------
# rpm -ivh http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm
http://ftp.riken.jp/Linux/fedora/epel/6/x86_64/epel-release-6-8.noarch.rpm を取得中
準備中... ########################################### [100%]
パッケージ epel-release-6-8.noarch は既にインストールされています。
----------------------------------------------------------

③インストールできたか確認

# node -v
v0.10.26

# npm -v
1.3.6

※npm は Node Package Manager の略称で Node で 作られたパッケージモジュールの管理ツールです


試しに動かしてみた。
-----------------------
# node
> console.log("TEST");
TEST
undefined
>
(^C again to quit)
>
#
-----------------------





フレームの子のペインでparentで親フレームを参照使用とした場合、Chromeではうまく動かないことがある

■親のフレーム

<frameset cols="220,*" id="index_main">
<frame name="xxx" src="sample1.html">
<frame name="yyy" src="sample2.html">
</frameset>


■子のHTMLのjavascriptに以下のようなコードを指定

//親でidに"index_main"が指定されているフレームを取得
var $element = parent.document.getElementById("index_main");


この実装、Chromeブラウザで動かすと動かないことがある。

ただし、動かないのはローカル環境のみである。
サーバにアップして、参照した場合はいい具合に動作する。

Chromeブラウザでは、セキュリティー上の関係で
ローカルではうまく動かないようになっているらしいが、
ブラウザ起動時にオプションを指定することで
ローカルでも動作するようになるらしい。

【参考サイト】
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1278218187

https://productforums.google.com/forum/#!category-topic/chrome-ja/%E5%95%8F%E9%A1%8C%E3%81%AE%E5%A0%B1%E5%91%8A/Caw2PgHi9rQ


[Javascript]ブログの更新情報をGoogleFeedAPIを使用して取得する

[Javascript]ブログの更新情報をGoogleFeedAPIを使用して取得する


よく、ホームページやブログなどに他のブログの最新の更新情報が表示されているのを見かけるが、
これは、RSSフィードを使用すれば簡単に実現できる。

大雑把にいうと、
JSON、XMLなどの形式でデータを取得して、パースされたデータを整形して表示するだけ。

自前でパース処理を実装したりするとちょっと大変だけど、「Google Feed API」を
使用すれば、指定したフィードのURLから取得してキーごとに分解してくれるところまで
やってくれる。

あとは、分解されたデータを自前で整形して出力するだけ。


■参考サイト
JavaScript Reference - Google Feed API
https://developers.google.com/feed/v1/reference?hl=ja


■このブログのフィードでお試しの実装
<html>
<head>
<title>RSSで最新情報を表示</title>
<script src="https://www.google.com/jsapi" type="text/javascript"></script>
<script type="text/javascript">
var feedUrl = "http://memo755.blog.fc2.com/?xml"; //RSS feed の URL

google.load("feeds", "1");

function initialize() {
var html = '';
var feed = new google.feeds.Feed(feedUrl);

feed.setNumEntries(3); //表示件数を設定(デフォルトは4件)
//フォーマットにJSONとXMLをの混合を指定、指定なしだとJSONになる
feed.setResultFormat(google.feeds.Feed.MIXED_FORMAT);
feed.load(function(result) {
if (!result.error){
var container = document.getElementById("feed"); //最新情報の挿入箇所のを取得
var items = result.xmlDocument.getElementsByTagName("item");
for (var i = 0; i < result.feed.entries.length; i++) {
var entry = result.feed.entries[i];

var title = entry.title; //記事タイトル取得
var link = entry.link; //記事のリンクを取得

//日付を取得し年月日を整形
var element = google.feeds.getElementsByTagNameNS(items[i], "http://purl.org/dc/elements/1.1/", "date")[0];
var date = element.firstChild.nodeValue;
var pubDD = new Date(date);
var yy = pubDD.getYear();
if (yy < 2000) yy += 1900;
var mm = pubDD.getMonth() + 1;
var hh = pubDD.getHours();
var min = pubDD.getMinutes();
var ss = pubDD.getSeconds();
dd = pubDD.getDate();
var pubDate = yy +'/'+ mm +'/'+ dd + ' ' + hh + ':' + min + ':' + ss;

//表示する部分を整形
html += '<div>' + pubDate + '<br><a href="' + link + '" target="_blank">' + title +'</a></div>';
}
container.innerHTML = html;
}
});
}
google.setOnLoadCallback(initialize);
</script>
</head>
<body>
<div id="feed">
</div>
</body>
</html>


今回は、データをJSONとXMLの混合した形式で取得している。
デフォルト(指定なし)は、google.feeds.Feed.JSON_FORMATとなる。
  • google.feeds.Feed.JSON_FORMAT ⇒ JSON形式
  • google.feeds.Feed.MIXED_FORMAT ⇒ JSON形式とXML形式の混合
  • google.feeds.Feed.XML_FORMAT ⇒ XML形式


  • プロフィール

    hiiro

    Author:hiiro

    最新記事
    カテゴリ
    月別アーカイブ
    最新コメント
    最新トラックバック
    検索フォーム
    RSSリンクの表示
    リンク
    ブロとも申請フォーム

    この人とブロともになる

    QRコード
    QR
    Counter