Javascript相当于php的strtotime()?

VJS*_*VJS 78 javascript date

在PHP中,您可以轻松地将英文文本日期时间描述转换为适当的日期strtotime().

Javascript中有类似的东西吗?

小智 63

是的.它在所有主流浏览器中都受支持:

var ts = Date.parse("date string");
Run Code Online (Sandbox Code Playgroud)

唯一的区别是此函数返回毫秒而不是秒,因此您需要将结果除以1000.

检查JavaScript解析的有效格式.

  • 不; 这个工作与php strtotime非常不同,没有php文档的例子工作,没有一个`strtotime("now"); strtotime("2000年9月10日"); strtotime("+ 1天"); strtotime("+ 1周"); strtotime("+ 1周2天4小时2秒"); strtotime("下周四"); strtotime("上周一");` (26认同)

usr*_*ΛΩΝ 50

我找到了这篇文章并尝试了本教程.基本上,您可以使用日期构造函数来解析日期,然后从getTime()方法中获取秒数

var d=new Date("October 13, 1975 11:13:00");
document.write(d.getTime() + " milliseconds since 1970/01/01");
Run Code Online (Sandbox Code Playgroud)

这有用吗?

  • -1.这仅涵盖RFC 822或ISO 8601格式的日期,但`strtotime()`支持许多其他格式. (27认同)

Wes*_*y92 33

看看这个实施PHP的的strtotime()在JavaScript的!

我发现它与PHP的相同之处在于我所投入的一切.

更新:此版本1.0.2的功能无法处理这种情况:( '2007:07:20 20:52:45' 注意:年份和月份的分隔符)

更新2018年:

现在可以作为npm模块使用!只需npm install locutus在您的来源中:

var strtotime = require('locutus/php/datetime/strtotime');
Run Code Online (Sandbox Code Playgroud)

  • 我通常不喜欢只是链接到库的答案,但是在这种情况下,因为JavaScript不能像strtotime那样处理几乎疯狂的情况,所以这是一个很棒的答案。谢谢! (3认同)

Kho*_*Phi 5

我嫉妒 php 中的 strtotime(),但我在 javascript 中使用 moment.strtotime() 。不像 php 那样甜蜜,但也很巧妙地完成了这个任务。

// first day of the month
var firstDayThisMonth = moment(firstDayThisMonth).startOf('month').toDate();
Run Code Online (Sandbox Code Playgroud)

subtract()使用and 和add()andendOf()来回切换startOf()

// last day of previous month
var yesterMonthLastDay = moment(yesterMonthLastDay).subtract(1,'months').endOf('month').toDate();
Run Code Online (Sandbox Code Playgroud)