2017-07-18 22 views
3

与えられた日の3日前に正しく取得するには、07/21/2017 8:30 AMのような形式があれば、私はEonasdan DateTime Pickerの形式を使用しているからです。しかし私が3日間でマイナスにしようとするとFri Jul 21 2017 08:24:14 GMT + 0800(中国標準時)は私の価値だが、私の希望する出力は同じ形式でなければならない07/21/2017 8:30 AM。どのように私は自分のフォーマットに従ってもその価値を得ることができますか?商品を取得する

マイコード:

var d =new Date('07/21/2017 8:30 AM'); 
 
var yesterday = new Date(d.getTime() - (96*60*60)); 
 
alert(yesterday);

+6

、それは時に生活がより簡単になります動作するはずですJSでの日付の扱い。 – Robert

+1

[JavaScriptの日付から日数を引く]の複製の可能性があります(https://stackoverflow.com/questions/1296358/subtract-days-from-a-date-in-javascript) – Champ

+0

私の質問は少し似ていると思いますしかし、まったく違う場合は、https://stackoverflow.com/questions/1296358/subtract-days-from-a-date-in-javascriptの質問では、現在の日付をフォーマットなしで特定の値に減算するよう求めています。フォローするフォーマット。したがって、私の質問は、同じでも重複でもなく、ユニークであると言えます。@Champ – Ailyn

答えて

1

function formatDate(d) { 
 
      month = '' + (d.getMonth() + 1), 
 
      day = '' + d.getDate(), 
 
      year = d.getFullYear(); 
 
    
 
     if (month.length < 2) month = '0' + month; 
 
     if (day.length < 2) day = '0' + day; 
 
    
 
     date = [month, day, year].join('/'); 
 
     var hours = d.getHours(); 
 
     var minutes = d.getMinutes(); 
 
     var ampm = hours >= 12 ? 'PM' : 'AM'; 
 
     hours = hours % 12; 
 
     hours = hours ? hours : 12; // the hour '0' should be '12' 
 
     minutes = minutes < 10 ? '0'+minutes : minutes; 
 
     var strTime = hours + ':' + minutes + ' ' + ampm; 
 
     return date+" "+strTime; 
 
} 
 
var d =new Date('07/21/2017 8:30 AM'); 
 
d.setDate(d.getDate() - 3); 
 
var yesterday = formatDate(d); 
 
alert(yesterday);

変数日付はこれは私が強くmoment.js見てみるお勧め

+0

ありがとう、これは私が探しているものです。助けてくれてありがとう@Kishor V – Ailyn

+0

あなたは歓迎です:D –

1

これはトリックを行う必要があります。基本的には

var date = new Date('07/21/2017 8:30 AM'); // get 
 
date.setDate(date.getDate() - 3); 
 
console.log(date.toString());

は、それが持つ現在の日付を取りますgetDate()とし、setDate()を使用して過去3日間の時刻を更新します。

日付を書式設定する場合は、@ Robertのようにmoment.jsを参照してください。 Dateクラスhereとモーメントドキュメントhere

moment().format('MM/DD/YYYY, h:mm:ss a'); 

詳細情報:あなたのようなものを使用することができます。

0

使用してみてください。この

var d = new Date(); 
var d =new Date('07/21/2017 8:30 AM'); 
var yesterday = d; 
yesterday.setDate(d.getDate()-3); 
alert(yesterday); 
+0

それはちょうど私のポストの2分後に言ったものです... – brennanenanen

+0

はい、申し訳ありません、私は他人と比較して彼に答えるのが遅かった。彼の質問をクリックしたときnoneは答えを投稿しました –

0

することはでき単にサブトラクト日日から例:d.getDate() - 3

var d =new Date('07/21/2017 8:30 AM'); 
 
d.setDate(d.getDate() - 3); 
 
alert(d)

0

、変更するDateクラスにsetDate機能を使用する必要がありますの日付部分

var d =new Date('07/21/2017 8:30 AM'); 
 
    d.setDate(d.getDate() - 3); 
 
    console.debug(d);

+0

'setDate()'はAPIではありませんが、組み込みのクラスメソッドです。 – brennanenanen

+0

@brennanenanenこの音は正しいですか? 'setDate API on Date class'ですか?私はそれをあなたがアドバイスした方法であると確信しています。 – RBT

+0

APIは、アプリケーションプログラミングインターフェイスを表します。 APIはアプリケーション間の会話に使用され、jsなどの組み込みクラスではありません。 – brennanenanen

関連する問題