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?
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étodo
var d=new Date("October 13, 1975 11:13:00");
document.write(d.getTime() + " milliseconds since 1970/01/01");
¿Esto funciona?
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.
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: esta función según la versión 1.0.2 no puede manejar este caso:
'2007:07:20 20:52:45'(tenga en cuenta el:separador de año y mes)
¡Esto ahora está disponible como npmmódulo ! Simplemente npm install locutusy luego en su fuente:
var strtotime = require('locutus/php/datetime/strtotime');
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()y add()con endOf()y startOf():
// last day of previous month
var yesterMonthLastDay = moment(yesterMonthLastDay).subtract(1,'months').endOf('month').toDate();
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
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>
Date() - taaan ... mismo que new 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;
'