En PHP, puede convertir fácilmente una descripción textual de fecha y hora en inglés en una fecha adecuada con strtotime()
.
¿Hay algo similar en Javascript?
javascript
date
VJS
fuente
fuente
Respuestas:
Encontré este artículo y probé el tutorial. Básicamente, puede usar el constructor de fecha para analizar una fecha, luego escribir obtener los segundos del
getTime()
métodovar d=new Date("October 13, 1975 11:13:00"); document.write(d.getTime() + " milliseconds since 1970/01/01");
¿Esto funciona?
fuente
strtotime()
admite muchos otros formatos.Sí lo es. Y es compatible con todos los navegadores principales:
var ts = Date.parse("date string");
La única diferencia es que esta función devuelve milisegundos en lugar de segundos, por lo que debe dividir el resultado entre 1000.
Compruebe qué formatos válidos puede analizar JavaScript.
fuente
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");
¡Vea esta implementación de strtotime () de PHP en JavaScript!
Descubrí que funciona de manera idéntica a PHP para todo lo que le lancé.
Actualización 2018:
¡Esto ahora está disponible como
npm
módulo ! Simplementenpm install locutus
y luego en su fuente:var strtotime = require('locutus/php/datetime/strtotime');
fuente
Estoy celoso del strtotime () en php, pero hago el mío en javascript usando moment. No es tan dulce como el de php, pero también hace el truco perfectamente.
// first day of the month var firstDayThisMonth = moment(firstDayThisMonth).startOf('month').toDate();
Avanza y retrocede usando
subtract()
yadd()
conendOf()
ystartOf()
:// last day of previous month var yesterMonthLastDay = moment(yesterMonthLastDay).subtract(1,'months').endOf('month').toDate();
fuente
La compatibilidad del navegador para analizar cadenas es inconsistente . Debido a que no existe una especificación sobre qué formatos deben admitirse, lo que funciona en algunos navegadores no funcionará en otros navegadores.
Pruebe Moment.js : proporciona la funcionalidad de varios navegadores para analizar fechas :
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
fuente
Hay pocos módulos que proporcionan un comportamiento similar, pero no exactamente como strtotime de PHP. Entre las pocas alternativas, encontré que date-util produce los mejores resultados.
fuente
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>
fuente
Date()
- taaan ... mismo quenew Date(strdate)
realmente ...Quizás puedas explotar una función de muestra como:
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;
'
fuente