JS-時間関連の関数パッケージ
6858 ワード
1.JSでタイムスタンプを時間に変換すると、コードは以下の通りです.
2.現在の時間を取得するコードは以下の通りです.
上段のコードは文字列のslice(-2)関数を利用して、まず0を加えて、最後の2桁の数字を残して、3元の演算子の判断を避けて、比較的に巧みな方法です.
3.半年前、三ヶ月前など過去の時間値を取得するコードは以下の通りです.
1 //
2 function timestampToTime(timestamp) {
3 var date = new Date(timestamp)
4 // 10 *1000, 13 1000
5 var Y = date.getFullYear() + '-'
6 var M = (date.getMonth()+1 < 10 ? '0'+(date.getMonth()+1) : date.getMonth()+1) + '-'
7 var D = (date.getDate() < 10 ? '0'+date.getDate() : date.getDate()) + ' '
8 var h = (date.getHours() < 10 ? '0'+date.getHours() : date.getHours()) + ':'
9 var m = (date.getMinutes() < 10 ? '0'+date.getMinutes() : date.getMinutes()) + ':'
10 var s = (date.getSeconds() < 10 ? '0'+date.getSeconds() : date.getSeconds())
11 return Y+M+D+h+m+s
12 }
なお、タイムスタンプが10桁の場合は、変換前にtimestamp*1000、タイムスタンプが13桁の場合は1000を乗る必要はありません.2.現在の時間を取得するコードは以下の通りです.
1 //
2 function getDateTimeNow() {
3 var time = new Date();
4 var day = ("0" + time.getDate()).slice(-2)
5 var month = ("0" + (time.getMonth()+1)).slice(-2)
6
7 var hour = ("0" + time.getHours()).slice(-2)
8 var minute = ("0" + time.getMinutes()).slice(-2)
9 var second = ("0" + time.getSeconds()).slice(-2)
10
11 var today = time.getFullYear() + "-" + (month) + "-" + (day) + " " + (hour) + ":" + (minute) + ":" + second
12 return today
13 }
注意、モンスターは+1が必要です.上段のコードは文字列のslice(-2)関数を利用して、まず0を加えて、最後の2桁の数字を残して、3元の演算子の判断を避けて、比較的に巧みな方法です.
3.半年前、三ヶ月前など過去の時間値を取得するコードは以下の通りです.
1 // ,time Date
2 function getDatetimeByDateObj(time) {
3 var day = ("0" + time.getDate()).slice(-2)
4 var month = ("0" + (time.getMonth()+1)).slice(-2)
5
6 var hour = ("0" + time.getHours()).slice(-2)
7 var minute = ("0" + time.getMinutes()).slice(-2)
8 var second = ("0" + time.getSeconds()).slice(-2)
9
10 var datetime = time.getFullYear() + "-" + (month) + "-" + (day) + " " + (hour) + ":" + (minute) + ":" + second
11 return datetime
12 }
13
14 // ,time
15 function getPastDatetime(time) {
16 var curDate = (new Date()).getTime()
17 time*=1000
18 var pastResult = curDate - time
19 return getDatetimeByDateObj(new Date(pastResult))
20 }
この原理は、DateオブジェクトのgetTime関数で現在のミリ秒数を求め、半年前に入ってくるべき時間が366/2*24*3600であるように、関数に1000を乗じてミリ秒数に変換して減算し、差をパラメータとしてDateオブジェクトを新規作成し、通常の日付時間に解析することである.