使用日期字符串在javascript中创建时间戳的正确方法是什么?

时间:2013-02-04 11:15:22

标签: javascript date timestamp

我将日期格式返回为05-Jan,12-feb等..当我在javascript中使用日期对象转换当前日期时。我做了类似的事情

            var curr = new Date(),
            curr_year = curr.getFullYear(),
            curr_month = curr.getMonth(),
            curr_day = curr.getDay(),
            today = new Date(curr_year, curr_month, curr_day, 0, 0, 0, 0);
            console.log(today);

这里今天作为无效日期返回我需要创建一个时间戳,该时间戳不应包括分钟秒和毫秒为零,仅基于我可以分类的月份和日期的日期比较。是否有方法动态创建日期并比较给定格式的日期。 当我尝试使用日期对象转换我的日期字符串时,它将年份返回到2001年。如何根据当前年份比较日期。 例如:在php中,我使用mktime从给定的日期格式动态创建日期并比较这些结果。任何建议都会有所帮助。感谢。

4 个答案:

答案 0 :(得分:1)

您可以利用本机JS Date功能获取时间戳的人类可读日期字符串。

var today = new Date();
console.log( today.toDateString() ); // Outputs "Mon Feb 04 2013"

日期比较也是内置的。

var yesterday = new Date();
yesterday.setDate( yesterday.getDate() - 1);
console.log( yesterday.toDateString() ); // Outputs "Sun Feb 03 2013"
console.log( yesterday < today ); //Outputs true

您可以使用其他内置方法微调此比较,使其对分钟/秒敏感,或将所有这些设置为0。

答案 1 :(得分:0)

你说你在php中使用了mktime(),那么this呢?

答案 2 :(得分:0)

改为:

        var curr = new Date(),
        curr_year = curr.getFullYear(),
        curr_month = curr.getMonth()+1,
        curr_day = curr.getDay(),
        today = curr_month+'/'+curr_day+'/'+curr_year;
        console.log(today);

(getMonth()+ 1是因为1月是0)

更改:

           today = curr_month+'/'+curr_day+'/'+curr_year;

以您喜欢的任何格式。

答案 3 :(得分:0)

我找到了一种方法将日期转换为我已经尝试过的@nbrooks实现的时间戳,但.toDateString具有内置日期比较,适用于运营商&lt;和&gt;但不是因为==运算符,我已经使用Date.parse();函数来实现它。这就是..

 var curr = new Date(),
 curr_year = curr.getFullYear(),
 curr_month = curr.getMonth(),
 curr_day = curr.getDate(),
 today = new Date(curr_year, curr_month, curr_day, 0,0,0,0);
 var dob = new Date('dob with month and date only'+curr_year);
 if(Date.parse(dob) == Date.parse(today)){
        //Birthdays....
        }

此方法可用于为动态创建的日期创建时间戳。感谢您的建议。