在 PHP 中,你可以使用 strtotime()
方法将英文文本格式的日期时间转换为正确的日期。
那么在 JavaScript 中有类似的方法吗?
在 PHP 中,你可以使用 strtotime()
方法将英文文本格式的日期时间转换为正确的日期。
那么在 JavaScript 中有类似的方法吗?
没有。最接近内置选项是Date.parse()
,它解析的内容是 非常有限的子集,与strtotime()
可以解析的内容相比要少得多:
var ts = Date.parse("2010-10-29");
值得注意的是,这个函数返回的是毫秒而不是秒,所以你需要将结果除以1000才能得到与PHP函数等效的值。
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");
- Ivan Castellanos我找到了这篇文章,并尝试了其中的教程。基本上,你可以使用日期构造函数来解析日期,然后使用getTime()
方法获取秒数。
var d=new Date("October 13, 1975 11:13:00");
document.write(d.getTime() + " milliseconds since 1970/01/01");
这个行得通吗?
strtotime()
支持许多其他格式。 - Ja͢cknew Date('2021-04-01')
将具有UTC时区的午夜时间,而日期new Date('04/01/2021')
将在本地时区创建午夜时间。如果您同时解析两种字符串格式的日期,则此差异可能会在程序中产生微妙的错误。 - Alana Storm我羡慕php中的strtotime()函数,但我在JavaScript中使用moment来完成它。虽然不如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();
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)
相同... - decezefunction 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;
`
对于那些想将日期时间转换为 Unix 时间戳的人,可以使用 Moment 库来实现。
对于 Vue.js,您可以像这样操作
let start = "2022/02/02 02:02:02";
return moment(start).format("x");