在PHP中,您可以使用轻松地将英语文本日期时间描述转换为正确的日期strtotime()
。
Javascript中有类似的东西吗?
Answers:
我找到了这篇文章,并尝试了本教程。基本上,您可以使用日期构造函数来解析日期,然后从getTime()
方法中写入get秒
var d=new Date("October 13, 1975 11:13:00");
document.write(d.getTime() + " milliseconds since 1970/01/01");
这样行吗?
strtotime()
支持许多其他格式。
是的。所有主流浏览器都支持它:
var ts = Date.parse("date string");
唯一的区别是此函数返回毫秒而不是秒,因此您需要将结果除以1000。
strtotime("now"); strtotime("10 September 2000"); strtotime("+1 day"); strtotime("+1 week"); strtotime("+1 week 2 days 4 hours 2 seconds"); strtotime("next Thursday"); strtotime("last Monday");
我嫉妒php中的strtotime(),但我确实在使用javascript进行挖掘。不如PHP那样甜美,但技巧也很巧妙。
// first day of the month
var firstDayThisMonth = moment(firstDayThisMonth).startOf('month').toDate();
来回使用subtract()
,并add()
与endOf()
和startOf()
:
// last day of previous month
var yesterMonthLastDay = moment(yesterMonthLastDay).subtract(1,'months').endOf('month').toDate();
浏览器对字符串解析的支持不一致。因为没有关于应该支持哪种格式的规范,所以在某些浏览器中有效的格式在其他浏览器中无效。
试试Moment.js-它提供了跨浏览器的功能来解析日期:
var timestamp = moment("2013-02-08 09:30:26.123");
console.log(timestamp.milliseconds()); // return timestamp in milliseconds
console.log(timestamp.second()); // return timestamp in seconds
var strdate = new Date('Tue Feb 07 2017 12:51:48 GMT+0200 (Türkiye Standart Saati)');
var date = moment(strdate).format('DD.MM.YYYY');
$("#result").text(date); //07.02.2017
<script src="https://code.jquery.com/jquery-1.9.1.min.js"></script>
<script src="https://cdnjs.cloudflare.com/ajax/libs/moment.js/2.17.1/moment.js"></script>
<div id="result"></div>
Date()
–如此……与new Date(strdate)
真正的一样…
也许您可以利用以下示例函数:
function strtotime(date, addTime){
let generatedTime=date.getTime();
if(addTime.seconds) generatedTime+=1000*addTime.seconds; //check for additional seconds
if(addTime.minutes) generatedTime+=1000*60*addTime.minutes;//check for additional minutes
if(addTime.hours) generatedTime+=1000*60*60*addTime.hours;//check for additional hours
return new Date(generatedTime);
}
let futureDate = strtotime(new Date(), {
hours: 1, //Adding one hour
minutes: 45 //Adding fourty five minutes
});
document.body.innerHTML = futureDate;
`