2017-09-13 1 views
0

J'utilise un composant timepicker pour ionique appelé ionic-timepicker et dans la documentation la valeur temporelle sélectionnée est une époque.Comment faire pour convertir la valeur de temps sélectionnée au bon moment?

Le rappel pour obtenir la valeur est la suivante:

var ipObj1 = { 
    callback: function (val) {  //Mandatory 
     if (typeof (val) === 'undefined') { 
     console.log('Time not selected'); 
     } else { 
     var selectedTime = new Date(val * 1000); 
     console.log('Selected epoch is : ', val, 'and the time is ', selectedTime.getUTCHours(), 'H :', selectedTime.getUTCMinutes(), 'M'); 
     } 
    } 
} 

Le problème est ici, par exemple, j'ai choisi 14h00 dans le timepicker, la valeur selectedTime est Thu Jan 01 1970 22:00:00 GMT+0800 (China Standard Time) et je veux seulement obtenir l'2:00 PM exacte valeur.

Deuxièmement, pourquoi la variable selectedTime contient-elle Jan 01 1970? Toute aide serait très appréciée.

Répondre

1

Je vous suggère d'utiliser la bibliothèque MomentJs

import * as moment from 'moment/moment'; 

let date = moment(new Date()).format('LT'); 

// Outputs: '10:42 AM' 

Différents formats sont disponibles dans la documentation.

La raison pour laquelle vous fréquentez date du 1er janvier 1970 est que vous ne définissez aucune date. Par défaut, les objets date/moment se replient au début de l'horodatage Unix.

+0

Je l'utilise actuellement. Mon code est moment (selectedTime) .format ('LT') et quand je sélectionne 2:00 PM dans le timepicker, je reçois 22:00 en utilisant moment (selectedTime) .format ('LT') – FewFlyBy

+0

Peut-être parce que vous le multipliez par 1000? Pourquoi faites-vous cela en premier lieu? Avez-vous essayé de régler le format des sélecteurs à 24 heures? – JoeriShoeby

+0

J'ai essayé d'enlever le multiplié par 1000 et j'ai besoin d'un format de 12 heures parce que je suis des Philippines mais j'ai toujours des valeurs incorrectes. Merci quand même – FewFlyBy