我将日期格式返回为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从给定的日期格式动态创建日期并比较这些结果。任何建议都会有所帮助。感谢。
答案 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....
}
此方法可用于为动态创建的日期创建时间戳。感谢您的建议。