2016-05-05 13 views
0

こんにちは私は日付の最初の数字を削除しようとしています。私はgetDate()slice()confusion

  1. は最初の整数を削除し、5のみ
  2. は、その一桁(例:6月5日)が同じままことを確認してください保つだろうか、のは、今日は5月15日だったとしましょうか?スライス・プロパティーを試しましたが、うまくいかないようです。

マイfiddlesticks:理論slice(-1)https://jsfiddle.net/DimitriXd4/gp2eaaot

var now = new Date(); 
var getTheDate = now.getDate().slice(-1); 
console.log(getTheDate); 

は右、最後の数を削減しても、それならば、単一の番号/単語をそれを返す必要がありますか?

+0

now.getDate()はそのまま012を返します –

+0

このhttps://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/Date/getDate –

+3

getDateはa *を返します。 * number **、 'slice'メソッドはありません。あなたは文字列に変換するか、単に '%10'を使うことができます。 – Bergi

答えて

1

これを試してください:

var now = new Date(); 
var getTheDate = (now.getDate() + "").slice(-1); 
console.log(getTheDate); 

https://jsfiddle.net/gp2eaaot/3/

結果に連結空文字列は、その後スライスが

+0

ありがとう、このような状況で空の文字列が何をするのか説明できますか? –

+1

の説明 –

+0

ありがとうネルソン。 –

1

slice()動作できるように、文字列に変換する文字列方法、およびのgetDate(あります)は文字列を返さないので、呼び出すことができませんgetDate().slice(-1); 文字列に変換してからsliceを使用する必要があります。例:

var getTheDate = now.getDate().toString().slice(-1); 

元の日付変数は変更されませんが、スライスされた文字列のみが表示されます。日付を更新する場合は、手動で行う必要があります。

-1

他の答えは1桁の数字を考慮していないようですので、ここではスライスする前に日付をチェックする機能があります。

var sliceDate = function(dateObject){ 
    var dateToSlice = dateObject.getDate(); 
    //if the date is a two digit number 
    if (dateToSlice > 9) { //NOTE we should not have to worry about the date being negative 
     dateToSlice = dateToSlice.toString().slice(-1); //change to string then slice 
    } 
    return Number(slicedDate); //convert back to number and return 
}; 
console.log(sliceDate(new Date())); //will print out 5 if May 5th or 6 if May 16th 

編集

ここではより簡潔なバージョンです:slice()を使用する必要はありません

var getTheDate = new Date().getDate(); 
var slicedDate = (getTheDate > 9) ? Number(getTheDate.toString().slice(-1)) : getTheDate; 
+1

コードが複雑すぎる – Nayuki

+0

@Nayukiもっと簡潔な例を編集して、うまくいけば助けてくれますか? –

2

Bergiが示唆したように、あなたが文字列をスライスする際、考慮すべき多くの懸念があるので、モジュロを使用するこの単純なアプローチであることが好ましい。10.

var dateRightDigit = (new Date().getDate() % 10) + ""; 
console.log(dateRightDigit); // "0" or "1" or ... or "9" 

剰余モジュロを取ることによって、数の上で動作する方が簡単ですあなたは文字列の長さ、どのようにstartend引数が働くか、そして負の数の意味を知る必要があります。

+0

私の恐ろしいフォーマットを編集してくれたことに感謝しています^^ –

+1

よろしくお願いします!良い一日を – Nayuki