Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
用日期字符串在javascript中创建时间戳的正确方法是什么?_Javascript_Date_Timestamp - Fatal编程技术网

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

用日期字符串在javascript中创建时间戳的正确方法是什么?,javascript,date,timestamp,Javascript,Date,Timestamp,我已将日期格式返回为1月5日、2月12日等。。当我在javascript中使用date对象转换当前日期时。我做了这样的事 var curr = new Date(), curr_year = curr.getFullYear(), curr_month = curr.getMonth(), curr_day = curr.getDay(), today = new Date(c

我已将日期格式返回为1月5日、2月12日等。。当我在javascript中使用date对象转换当前日期时。我做了这样的事

            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);
在这里,今天作为无效日期返回。我需要创建一个时间戳,该时间戳不应包括分钟秒和毫秒作为零,以便根据我可以创建的类别单独比较月份和日期。是否有方法动态创建日期并比较给定格式的日期。 当我尝试使用date对象转换日期字符串时,它返回的年份是2001年。如何根据当前年份比较日期。
例如:在php中,我使用给定的日期格式动态创建一个日期,并比较这些结果。任何建议都会有帮助。谢谢。

您可以利用原生JS日期功能来获取时间戳的可读日期字符串

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
var昨天=新日期();
昨日.setDate(昨日.getDate()-1);
console.log(昨日.toDateString());//输出“2013年2月3日太阳”
console.log(昨天<今天)//输出为真

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

您说过您在php中使用了mktime(),那么呢?

更改为:

        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是因为一月是0)

更改:

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

无论您喜欢什么格式。

我已经找到了一种方法,将日期转换为时间戳,我已经尝试了@nbrooks实现,但是。toDateString内置了日期比较,它适用于运算符<和>,但不适用于==运算符,我使用了
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....
        }

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

关于@Westie的文档这是一个C主题,这是一个JavaScript问题。该死!你今天早上睡得很熟!因此,如果你修正了输入错误,那么日期就不再无效了……如果这不是你想要的,请把你的问题说清楚。您期望的输入和输出是什么?我想创建一个timstamp,而不考虑分钟或秒。这是一个没有分钟/秒的示例。很抱歉,由于该错误,日期无效,但今天返回01 bt是04..@sathya。根据本地时间返回指定日期的星期几(0-6)。今天是星期一,一周的第一天,所以它返回1。如果您想要日期,请使用
getDate
。我阅读了文档并在今天纠正了这些错误=日期(当前年份、当前月份、当前日期、0、0、0);打印时,它仍然返回当前时间的小时、分钟、秒和毫秒。如果我需要用我的日期格式(即2月4日)查找出生日期,则该日期只会在一秒钟内相等,然后它只会返回更大或更小的值。@nbrroks srry my bad我又错过了新的运算符。。和平out@sathya您可以使用Date对象的set方法将秒数等设置为0,并将所有秒数包装为fn。你可以打电话让日期正常化。或者,您可以简单地使用字符串相等来比较日期字符串(仅包括日期和日期,如上面的回答所示)。我会尝试一下,然后回复您。我尝试过了,但今天没有给出正确的时间戳=mktime(0,0,0,curr\u day,curr\u month+1,curr\u year)