Entidad @sys.time l...
 

Entidad @sys.time legible para humanos  

  RSS

manuelle
(@manuelle)
Active Member
Registrado: hace 8 meses
Respuestas: 6
07/12/2019 7:29 pm  

Hola.

La entidad de @sys.time regresa "2019-12-07 T16: 30:00-06:00". C贸mo lo convierto a algo mas legible para el humano? como las 2:27 PM


Citar
David
(@david)
Estimable Member
Registrado: hace 1 a帽o
Respuestas: 102
07/12/2019 8:43 pm  

De acuerdo con la documentaci贸n de dialoflow ( https://dialogflow.com/docs/reference/system-entities ), sys.date devuelve una cadena de fecha en formato ISO 8601 como "2019-04-06T12: 00: 00-06: 00".

Entonces, si agent.parameters.date es una cadena en el mismo formato, entonces en la funci贸n makeBooking, asumiendo que el valor es "2019-13-07T16: 51: 42 + 05: 30", entonces:

function makeBooking(agent){ 
// 2019-12-07
var bookingDate= agent.parameters.date.split('T')[0];
// 16
var bookingTime = agent.parameters.time.split('T')[1].split(':')[0];
// You have booked on 2019-12-07 at 16
agent.add(`You have booked on ${availDate} at ${availTime}.`);
}

Si desea que la hora sea "2:27 pm", debe convertir "13:27" a un formato apropiado. Aqu铆 hay muchas, muchas preguntas sobre c贸mo volver a formatear las cadenas de fecha, en este caso desea la fecha y la hora como cadenas separadas, por lo que puede usar algo como lo siguiente que devuelve una matriz de la fecha y la hora como elementos separados:

// "2018-11-23T16:51:42+05:30"
function reformatDate(s) {
// ["2019-12-07", "13:27:42+05:30"]
var b = s.split('T');
// ["16", "51"]
var t = b[1].slice(0,5).split(':');
return [b[0], `${t[0]%12||12}:${t[1]} ${t[0]<12?'am':'pm'}`];
}

["2019-12-23T16:51:42+05:30",
"2019-12-23T06:16:42+05:30",
"2019-12-23T00:01:42+05:30",
"2019-12-23T23:55:42+05:30"
].forEach(s => {
var parts = reformatDate(s);
console.log(`You have booked on ${parts[0]} at ${parts[1]}`);
});

Espero entiendas, si tiene una pregunta dime

This post was modified hace 1 mes 3 times by David

ResponderCitar
Share:

Por favor Iniciar Sesi贸n o Registro