Javascript эквивалент PHP strtotime ()?
в PHP вы можете легко преобразовать текстовое описание datetime на английском языке в правильную дату с помощью strtotime()
.
есть ли что-нибудь подобное в JavaScript?
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