函数以Javascript格式获取昨天的日期,格式为DD / MM / YYYY

时间:2013-05-22 08:10:11

标签: javascript date

我一直在寻找一段时间以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的麻烦。

提前谢谢。

3 个答案:

答案 0 :(得分:57)

此处的问题似乎是您通过为其分配字符串来重新分配$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现在是包含格式化日期的{{1>}( a String)。

答案 1 :(得分:18)

试试这个:

function getYesterdaysDate() {
    var date = new Date();
    date.setDate(date.getDate()-1);
    return date.getDate() + '/' + (date.getMonth()+1) + '/' + date.getFullYear();
}

答案 2 :(得分:3)

您在if语句中覆盖$today

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

它不再是Date()对象 - 因此错误。