📚

JSでTweetのURLから投稿時間を割り出す

2023/02/10に公開

https://twitter.com/jack/status/1247616214769086465

こちらのツイートをサンプルにする。

Snowflakeに従ってIDがふられているのでデコードすればいい。

let url = "https://twitter.com/jack/status/1247616214769086465";
// twitter idを抜き出す
let id = url.split("/").at(-1);
// BigIntにしてからbit列にする
id = BigInt(id).toString(2);
// 下位22bitを削除
id = id.slice(0, id.length - 22);
// Numberに戻してSnowflakeの基準になってるタイムスタンプで調整
id = parseInt(id, 2) + 1288834974657;
// おわり
new Date(id); // => Wed Apr 08 2020 05:04:19 GMT+0900 (Japan Standard Time)

Discussion