質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

Q&A

解決済

1回答

1366閲覧

jQueryによるタイムスタンプ変換方法

raisinchan

総合スコア14

JavaScript

JavaScriptは、プログラミング言語のひとつです。ネットスケープコミュニケーションズで開発されました。 開発当初はLiveScriptと呼ばれていましたが、業務提携していたサン・マイクロシステムズが開発したJavaが脚光を浴びていたことから、JavaScriptと改名されました。 動きのあるWebページを作ることを目的に開発されたもので、主要なWebブラウザのほとんどに搭載されています。

jQuery

jQueryは、JavaScriptライブラリのひとつです。 簡単な記述で、JavaScriptコードを実行できるように設計されています。 2006年1月に、ジョン・レシグが発表しました。 jQueryは独特の記述法を用いており、機能のほとんどは「$関数」や「jQueryオブジェクト」のメソッドとして定義されています。

0グッド

0クリップ

投稿2019/05/01 13:42

var ux = '1556717071031';

というタイムスタンプをjQueryで変換する方法を教えていただけませんでしょうか?

もしできれば➀と➁と2通り知りたいのですが、➁はかなり難しかと思いますので、とりあえず➀だけでも、どなたかお分かりになりませんでしょうか?

###➀その「日付」に変換

(例)

2019-05-01

###➁フェイスブックみたいに、「相対日時」に変換

(例)


×秒前
×分前
×時間前
×日前
×か月前
×年×月×日

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

kei344

2019/05/01 13:51

jQueryには時間を操作する機能はjQuery.now()くらいしかないですよ。
raisinchan

2019/05/01 14:12

jQueryの方が簡単だと伺ったのでお聞きしてみたんですけど、JavaScriptでも大丈夫です。
guest

回答1

0

ベストアンサー

JavaScipt

1var ux = '1556717071031'; 2var date = new Date(parseInt(ux, 10)); 3var month = date.getMonth() + 1; 4var day = date.getDate(); 5var dateString = date.getFullYear() + '-' + (month < 10 ? '0' : '') + month + '-' + (day < 10 ? '0' : '') + day; 6console.log(dateString);

・~秒前、~分前の値は切り捨てです。
・1か月を一律(365.25 / 12)日とみなして計算しています。
・未来の値は考慮していません。

JavaScipt

1function toRelativeDate(ux) { 2 var date = new Date(parseInt(ux, 10)); 3 var seconds = (new Date - date) / 1000; 4 var days = seconds / 3600 / 24; 5 6 if (seconds < 1) return '今'; 7 if (seconds < 60) return Math.floor(seconds) + '秒前'; 8 if (seconds < 3600) return Math.floor(seconds / 60) + '分前'; 9 if (seconds < 3600 * 24) return Math.floor(seconds / 3600) + '時間前'; 10 if (days < 365.25 / 12) return Math.floor(days) + '日前'; 11 // 1か月を一律(365.25 / 12)日とみなして計算 12 if (days < 365.25) return Math.floor(days / 365.25 * 12) + 'か月前'; 13 return date.getFullYear() + '年' + (date.getMonth() + 1) + '月' + date.getDate() + '日'; 14} 15 16// テスト 17 18console.log(toRelativeDate((new Date().valueOf() - 500).toString())); 19console.log(toRelativeDate((new Date().valueOf() - 12700).toString())); 20console.log(toRelativeDate((new Date().valueOf() - 34.5 * 60000).toString())); 21console.log(toRelativeDate((new Date().valueOf() - 23.6 * 3600000).toString())); 22console.log(toRelativeDate((new Date().valueOf() - 21.5 * 24 * 3600000).toString())); 23console.log(toRelativeDate((new Date().valueOf() - 360 * 24 * 3600000).toString())); 24console.log(toRelativeDate(new Date(2018, 5-1, 1).valueOf().toString()));

投稿2019/05/01 19:18

編集2019/05/01 23:36
naomi3

総合スコア1105

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

raisinchan

2019/05/02 08:54

…完っ璧でございます。どうもありがとうございます。家宝にします。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問