25

昨日の日付を DD/MM/YYYY の形式で取得するためにしばらく探していました。これが私の現在のコードです:

var $today = new Date();
var $dd = $today.getDate();
var $mm = $today.getMonth()+1; //January is 0!

var $yyyy = $today.getFullYear();
if($dd<10){$dd='0'+dd} if($mm<10){$mm='0'+$mm} $today = $dd+'/'+$mm+'/'+$yyyy;

これで、今日の日付を DD/MM/YYYY の形式で取得します (SO に感謝します)。しかし、私がこれを試すと:

var $yesterday = $today.getDate()-1;

このサイトで推奨されているように (リンクを失った)、このオブジェクトの getDate() が見つからないというエラーが表示されます。

私は自分のスクリプトを Sahi で使用していますが、Sahi は Javascript に問題がないため、リンクしているとは思いません。

前もって感謝します。

4

3 に答える 3

63

ここでの問題は$today、文字列を割り当てて再割り当てしているようです。

$today = $dd+'/'+$mm+'/'+$yyyy;

文字列には がありませんgetDate

また、$today.getDate()-1その月の日から 1 を引いた値が返されます。「昨日」の完全な日付は表示されません。これを試して:

$today = new Date();
$yesterday = new Date($today);
$yesterday.setDate($today.getDate() - 1); //setDate also supports negative values, which cause the month to rollover.

次に、作成したフォーマット コードを適用します。

var $dd = $yesterday.getDate();
var $mm = $yesterday.getMonth()+1; //January is 0!

var $yyyy = $yesterday.getFullYear();
if($dd<10){$dd='0'+$dd} if($mm<10){$mm='0'+$mm} $yesterday = $dd+'/'+$mm+'/'+$yyyy;

最後のステートメントにより、$yesterday現在は書式設定された日付を含むString(ではない) です。Date

于 2013-05-22T08:20:01.487 に答える
21

これを試して:

function getYesterdaysDate() {
    var date = new Date();
    date.setDate(date.getDate()-1);
    return date.getDate() + '/' + (date.getMonth()+1) + '/' + date.getFullYear();
}
于 2013-05-22T08:19:49.370 に答える
3

$todayif ステートメントでオーバーライドします。

if($dd<10){$dd='0'+dd} if($mm<10){$mm='0'+$mm} $today = $dd+'/'+$mm+'/'+$yyyy;

それはもはや Date() オブジェクトではないため、エラーが発生します。

于 2013-05-22T08:20:30.473 に答える