Javascript相当于php的strtotime()?

时间:2010-10-29 00:40:08

标签: javascript date

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

Javascript中有类似内容吗?

8 个答案:

答案 0 :(得分:60)

是的,确实如此。所有主流浏览器都支持它:

var ts = Date.parse("date string");

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

Check what valid formats can JavaScript parse.

答案 1 :(得分:47)

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

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

这有用吗?

答案 2 :(得分:30)

在JavaScript中查看PHP的strtotime()的this实现!

我发现它对于我投入的所有内容都与PHP完全相同。

  

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

更新2018:

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

var strtotime = require('locutus/php/datetime/strtotime');

答案 3 :(得分:4)

我嫉妒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();

答案 4 :(得分:0)

很少有模块提供类似的行为,但不完全像PHP的strtotime。在我发现date-util的几个替代方案中,效果最好。

答案 5 :(得分:0)

也许您可以利用以下示例函数:

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;

`

答案 6 :(得分:-1)

浏览器支持解析字符串is inconsistent。因为没有关于应该支持哪种格式的规范,所以在某些浏览器中有效的功能在其他浏览器中不起作用。

尝试Moment.js - 它为parsing dates提供了跨浏览器功能:

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

答案 7 :(得分:-1)



>>> x = np.random.random((2,3,4))
>>> x
array([[[ 0.87412737,  0.11069105,  0.86951092,  0.74895912],
        [ 0.48237622,  0.67502597,  0.11935148,  0.44133397],
        [ 0.65169681,  0.21843482,  0.52877862,  0.72662927]],

       [[ 0.48979028,  0.97103611,  0.36459645,  0.80723839],
        [ 0.90467511,  0.79118429,  0.31371856,  0.99443492],
        [ 0.96329039,  0.59534491,  0.15071331,  0.52409446]]])
>>> y = np.argmax(x, axis=1)
>>> y
array([[0, 1, 0, 0],
       [2, 0, 0, 1]])
>>> i, j = np.ogrid[:2,:4]
>>> x[i ,y, j]
array([[ 0.87412737,  0.67502597,  0.86951092,  0.74895912],
       [ 0.96329039,  0.97103611,  0.36459645,  0.99443492]])

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