ISODateの実装ソースコード

新年あけましておめでとうございます。

2017年も人工知能やチャットで物件を探す不動産アイケーホームをよろしくお願いします!!

早速ですが、年末年始とさまざまなSNSをご利用された方は多いのでは??

某SNSサービスでは「明けましておめでとう」「Happy New Year」というキーワードを打ち込むと、そのキーワードに対して花火が打ちあがるようなソースコードを打ち込んでいるところもありました。

そこで、ちょっとしたソースコードをご紹介。

ISOとは

ISOとは、国際標準化機構(International Organization for Standardization/略称 ISO)のことで、国際的な標準である国際規格を策定するための非政府組織で非営利法人。

時間などの世界時間の基準などもISOが関係してきます。

そんなところでISODateの実装ソースコードをご紹介します。

ISODateの実装

ISODate;
function (isoDateStr) {
if (!isoDateStr) {
return new Date;
}
var isoDateRegex = /(\d{4})-?(\d{2})-?(\d{2})([T ](\d{2})(:?(\d{2})(:?(\d{2}(\.\d+)?))?)?(Z|([+-])(\d{2}):?(\d{2})?)?)?/;
var res = isoDateRegex.exec(isoDateStr);
if (!res) {
throw “invalid ISO date”;
}
var year = parseInt(res[1], 10) || 1970;
var month = (parseInt(res[2], 10) || 1) – 1;
var date = parseInt(res[3], 10) || 0;
var hour = parseInt(res[5], 10) || 0;
var min = parseInt(res[7], 10) || 0;
var sec = parseFloat(res[9]) || 0;
var ms = Math.round(sec % 1 * 1000);
sec -= ms / 1000;
var time = Date.UTC(year, month, date, hour, min, sec, ms);
if (res[11] && res[11] != “Z”) {
var ofs = 0;
ofs += (parseInt(res[13], 10) || 0) * 60 * 60 * 1000;
ofs += (parseInt(res[14], 10) || 0) * 60 * 1000;
if (res[12] == “+”) {
ofs *= -1;
}
time += ofs;
}
return new Date(time);
}

最後がreturn new Date(time)となっているので、これはつまりDateオブジェクトを生成するただのユーティリティ関数

ISODateの呼び出し方法

•年月日の間のハイフン”-“は、あってもなくても同じ。
•年月日と時間を区切るのは、”T”または” “どちらもでよい。
•自分秒を区切る”:”は、あってもなくても同じ
•ミリ秒を表現する場合は、秒の後に”.123″のように書く。
•日本標準時でオブジェクト生成する場合は、最後に’+09:00’と書く。

# 日付と時間の区切りはT,空白のどちらか (区切りなしはダメ)

ISODate(‘2016-12-23T04:41:00’)
ISODate(‘2016-12-23 04:41:00’)

# 年月日の区切りはあってもなくても同じ

ISODate(‘2016-1223 04:41:00’);
ISODate(‘201612-23 04:41:00’);
ISODate(‘20161223 04:41:00’);

# 時分秒の区切りはあってもなくても同じ

ISODate(‘2016-12-23 0441:00’);
ISODate(‘2016-12-23 04:4100’);
ISODate(‘2016-12-23 044100’);

# 区切りを全部省略できる

ISODate(‘20161223 044100’);

# ミリ秒を表現する場合はこう (ただし有意なのは1ms単位まで)

ISODate(‘20161223 044100.000000’);

# 日本標準時の表現でオブジェクト生成する

ISODate(‘2016-12-23 13:41:00+09:00’);

世界標準時と日本標準時

ISODate(‘2017-01-01 00:00:00’)
ISODate(‘2017-01-01 09:00:00+09:00’)

var t1 = ISODate(‘2017-01-01 00:00:00’);
> var t2 = ISODate(‘2017-01-01 09:00:00+09:00’);
> t1.toString() === t2.toString();
true

(参照:dqn.sakusakutto.jp/2011/12/mongodbisodate_1.html )
(参照:IBM

当然、地球は回っているので、日本以外の国の方が「Happy New Year」の花火を打ち上げているときには、日本人はすでに12月31日の0時をすでに回っていると思いますので…。ちなみに変なウィルスコードなんかを打ち込んでしまうと大変なことに…。
ISO

Tech×不動産のStartup!!
「新たな不動産取引のカタチ」

「不動産会社はどれだけ儲けているの??」そんな独特な日本の不動産業界に少しでも影響が与えられ、お客様が喜んでいただけるサービスを常に試行錯誤。あたりまえのことがあたりまえではない世の中で、あたりまえのことをして行く。 ご購入をご検討のお客様は、「仲介手数料無料サービス」も行っております。(※すべての物件が仲介手数料無料ではないので、お気軽にご相談ください。)

ムダな仲介手数料をお支払いする可能性も?!
「仲介手数料無料サービス」

すべての物件が対象という訳ではないのですが、仲介手数料無料でも不動産ビジネスとして成立することが多々あります。不動産購入や不動産売却の「仲介手数料無料サービス」 は、お気軽にご相談ください。(※すべての物件が仲介手数料無料ではないので、お気軽にご相談ください。)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です