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(谢谢)。但是当我尝试这个时:

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

正如本网站在其他地方推荐的那样(丢失了链接),我收到一条错误消息,指出找不到该对象的 getDate()。

我将我的脚本与 Sahi 一起使用,但我认为它没有关联,因为 Sahi 对 Javascript 没有任何问题。

先感谢您。

4

3 回答 3

63

这里的问题似乎是您$today通过为其分配一个字符串来重新分配:

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

字符串没有getDate.

另外,$today.getDate()-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

$today您在 if 语句中覆盖。

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

然后它不再是 Date() 对象 - 因此出现错误。

于 2013-05-22T08:20:30.473 回答