web-dev-qa-db-ja.com

日付から秒/ミリ秒を削除してISO文字列に変換します

私がしたい日付オブジェクトがあります

  1. ミリ秒を削除/または0に設定
  2. 秒を削除するか、または0に設定します
  3. ISO文字列に変換

例えば:

var date = new Date();
//Wed Mar 02 2016 16:54:13 GMT-0500 (EST)

var stringDate = moment(date).toISOString();
//2016-03-02T21:54:13.537Z

でも最後に本当に欲しいのは

stringDate = '2016-03-02T21:54:00.000Z'
24
tester123

これは単純なjavascript(RobGの回答を参照)で簡単に解決できますが、質問にmomentjsのタグを付けたため、momentjsソリューションを紹介したいと思います。

moment().seconds(0).milliseconds(0).toISOString();

これにより、現在の日時が秒またはミリ秒なしで表示されます。

作業例: http://jsbin.com/bemalapuyi/edit?html,js,output

ドキュメントから: http://momentjs.com/docs/#/get-set/

29
jszobody

ライブラリは不要です。秒とミリ秒をゼロに設定し、組み込みのtoISOStringメソッドを使用します。

var d = new Date();
d.setSeconds(0,0);
document.write(d.toISOString());

注:toISOStringは、IE 8以前ではサポートされていません。 MDNのポリフィル

30
RobG

ここでは少し遅れていますが、次のことができます:

var date = new Date();

このオブジェクトには次のものがあります。

date.setMilliseconds(0);

そして

date.setSeconds(0);

次にtoISOString()を呼び出しますが、問題ありません。

瞬間や他の深さはありません。

7
Jimmy Kane

秒とミリ秒を削除する純粋なJavaScriptソリューション(つまり、0に設定するだけでなく削除します)。 JSPerf は、2番目の関数がより高速であることを示します。

function getISOStringWithoutSecsAndMillisecs1(date) {
  const dateAndTime = date.toISOString().split('T')
  const time = dateAndTime[1].split(':')
  
  return dateAndTime[0]+'T'+time[0]+':'+time[1]
}

console.log(getISOStringWithoutSecsAndMillisecs1(new Date()))
 
function getISOStringWithoutSecsAndMillisecs2(date) {
  const dStr = date.toISOString()
  
  return dStr.substring(0, dStr.indexOf(':', dStr.indexOf(':')+1))
}

console.log(getISOStringWithoutSecsAndMillisecs2(new Date()))
2
ips

Moment.js内でstartOf()メソッドを使用して、目的を達成できます。

以下に例を示します。

var date = new Date();

var stringDateFull = moment(date).toISOString();
var stringDateMinuteStart = moment(date).startOf("minute").toISOString();

$("#fullDate").text(stringDateFull);
$("#startOfMinute").text(stringDateMinuteStart);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.11.2/moment.js"></script>
<p>Full date: <span id="fullDate"></span></p>
<p>Date with cleared out seconds: <span id="startOfMinute"></span></p>
1
Sarhanis
let date = new Date();
date = new Date(date.getFullYear(), date.getMonth(), date.getDate());

これがうまくいくことを願っています!!

0
Vishal Variyani