Twitterのミリ秒チェッカー的な何か。
お久し振りです。
ヘッダー画像とにらめっこするたびにこのブログの行く末を案じています。
モンハンやってないわけじゃないんですよ?(((
出来上がってしまったもの
Twitterからconsoleに入ってもらって以下のコードを打てば、ツイート投稿時間の小数3桁まで見れるというもの。
ーー
var id=location.href.match(/\d{18,}/);
id=((id/4194304)+1288834974657);
id=parseInt(id,10)+'';
var und3=id.substr(-3,3);
id -= und3;
var td=new Date(id);
td=td.toLocaleString()+'.'+und3;
prompt("ついーとした時間",td);
ーー
よくわからない解説
いーねっ!
— く (@Iruk_Nuj) 2018年1月5日
この呟きを例に(雑に)コードの解説。
location.href
urlの詳細を引っ張ってくる子。この場合なら
https://twitter.com/Iruk_Nuj/status/949371401525342208 になる。
ーー
location.href
"https://twitter.com/Iruk_Nuj/status/949371401525342208"
ーー
.match()
括弧内の条件に合う内容を与える。合わなかったらnullを返す
.match(/\d{18,}/)
正規表現。d{18,}が18桁以上の数字列なので、今回なら
https://twitter.com/Iruk_Nuj/status/949371401525342208
から"949371401525342208"の部分を返す
ーー
>location.href.match(/\d{18}/);
>["949371401525342208", index: 36, input: "https://twitter.com/Iruk_Nuj/status/949371401525342208"]
embed.pscp.tv/id/1dvEOZBLZZojX.json:1 GET https://embed.pscp.tv/id/1dvEOZBLZZojX.json 403 ()
ーー
id=(id/4194304)+1288834974657;
殆どこちらの記事を参考にしました。
上で出した文字列がstatus IDと呼ばれるもので、なんやかんや計算すると後のnew Dateで上手い事日程になる。
1288834974657ってのは
new Date(1288834974657);
— く (@Iruk_Nuj) 2018年1月5日
Thu Nov 04 2010 10:42:54 GMT+0900 (東京 (標準時))
new Dateしてみると基準時間みたいなアレ、Twitterサービス開始時刻か何かな..?
(id/4194304)(経過時間)+1288834974657(基準時間)で現在時間みたいなことをやってる...んだと思う。
id=parseInt(id,10)+'';
文字列を数字に変換。
括弧右の数字は変換の際の進数、2〜36進数くらいまで出来たと思う。
.substr(n,a);
頭からn文字目からa文字受け取る。
「.substr(-3,3);って頭から-3文字ってどういうことなのさ?」
ーー
var id=location.href.match(/\d{18}/);
id=(id/4194304)+1288834974657;
id=parseInt(id,10)+'';
var und3=id.substr(-3,3);
und3;
"248"
ーー
こういうこと。
この3桁が今回欲しいミリ秒以下3桁の秒数になります。
id -= und3;
1288834974657-248 new Dateに対応させるため
td=new Date(id);
前述のqiitaから引用した値をブチ込むと上手い感じに日時の表記を生成してくれる。
ミリ秒以下には対応してないっぽいので先の式で下3桁を取り除いてあげた。
ーー
var id=location.href.match(/\d{18}/);
id=(id/4194304)+1288834974657;
id=parseInt(id,10)+'';
var und3=id.substr(-3,3);
id -= und3;
var td=new Date(id);
td
Sat Jan 06 2018 05:05:55 GMT+0900 (東京 (標準時))
ーー
td=td.toLocaleString()+'.'+und3;
//ここなんか顔文字みたいで可愛い↑
で、標準時とミリ秒をあわせて
ーー
var id=location.href.match(/\d{18}/);
id=((id/4194304)+1288834974657);
id=parseInt(id,10)+'';
var und3=id.substr(-3,3);
id -= und3;
var td=new Date(id);
td=td.toLocaleString()+'.'+und3;
td
"2018/1/6 5:05:55.248"
ーー
prompt("ついーとした時間",td);
わかりやすくポップアップしておわり
お疲れ様でした。
おまけ
意気揚々と挑んだ334の結果
く
— 334Ranker (@334_Ranker) 2018年1月5日
記録 03:34:00.764 (トップ+0.763)
順位 134位/922人
使用クライアント Twitter Web Client
しょーもな...ww
— く (@Iruk_Nuj) 2018年1月5日