Javascript эквивалент PHP strtotime ()?


в PHP вы можете легко преобразовать текстовое описание datetime на английском языке в правильную дату с помощью strtotime().

есть ли что-нибудь подобное в JavaScript?

7 68

7 ответов:

нашел в этой статье и попробовал учебник. В принципе, вы можете использовать конструктор даты для разбора даты, а затем написать получить секунды из getTime() метод

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

это работает?

Да, это так. И это поддерживается во всех основных браузерах:

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

единственная разница в том, что эта функция возвращает миллисекунды вместо секунд, поэтому вам нужно разделить результат на 1000.

проверьте, какие допустимые форматы может анализировать JavaScript.

проверить этой реализация 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');

Я завидую strtotime () в php, но я делаю мой в 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();

есть несколько модулей, которые обеспечивают подобное поведение, но не совсем как strtotime PHP. Среди немногих альтернатив я нашел date-util дает лучшие результаты.

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>

поддержка браузера для разбора строк несовместимо. Поскольку нет спецификации о том, какие форматы должны поддерживаться, то, что работает в некоторых браузерах, не будет работать в других браузерах.

попробовать момент.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