J'utilise une méthode pour obtenir des données
function date() {
let str = '';
const currentTime = new Date();
const year = currentTime.getFullYear();
const month = currentTime.getMonth();
const day = currentTime.getDate();
const hours = currentTime.getHours();
let minutes = currentTime.getMinutes();
let seconds = currentTime.getSeconds();
if (month < 10) {
//month = '0' + month;
}
if (minutes < 10) {
//minutes = '0' + minutes;
}
if (seconds < 10) {
//seconds = '0' + seconds;
}
str += year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds + ' ';
console.log(str);
}
Et comme résultat je reçois
2017-6-13 20:36:6
Je voudrais obtenir la même chose, mais comme
2017-06-13 20:36:06
Mais si j'essaie l'une des lignes, que j'ai commentée, par exemple celle-ci
month = '0' + month;
Je reçois une erreur
Argument of type 'string' is not assignable to parameter of type 'number'.
Comment pourrais-je concatter une chaîne et un nombre?
Littéraux de modèle (ES6 +)
Au lieu d'une concaténation comme month = '0' + month;
Vous pouvez utiliser un template littal
const paddedMonth: string = `0${month}`;
Votre concaténation de chaîne se transforme ensuite en ceci par exemple:
str = `${year}-${paddedMonth}-${day} ${hours}:${minutes}:${seconds} `;
Beaucoup plus lisible, IMO.
Types d'union
Vous pouvez également utiliser un type d'union lors de la déclaration de variables.
let month: string | number = currentTime.getMonth();
if (month < 10) {
month = '0' + month;
}
si vous voulez travailler avec la date, vous pouvez utiliser le module momentjs: https://momentjs.com
moment().format('MMMM Do YYYY, h:mm:ss a'); // July 13th 2017, 11:18:05 pm
moment().format('dddd'); // Thursday
moment().format("MMM Do YY"); // Jul 13th 17
moment().format('YYYY [escaped] YYYY'); // 2017 escaped 2017
moment().format(); // 2017-07-13T23:18:05+04:30
et à propos de l'erreur que vous avez, vous utilisez le plus souvent comme ceci:
let monthStr: string = month;
if ( month < 10) {
monthStr = '0' + month;
}
Tout d’abord, je ne sais pas pourquoi vous définissez month
comme un const
et essayez ensuite de le changer. Déclarez toutes vos variables avec let
et convertissez-les toutes en chaînes et vous devriez être prêt à partir.
function date() {
let str = '';
const currentTime = new Date();
let year = currentTime.getFullYear().toString();
let month = currentTime.getMonth().toString();
let day = currentTime.getDate().toString();
let hours = currentTime.getHours().toString();
let minutes = currentTime.getMinutes().toString();
let seconds = currentTime.getSeconds().toString();
if (month < 10) {
month = '0' + month;
}
if (minutes < 10) {
minutes = '0' + minutes;
}
if (seconds < 10) {
seconds = '0' + seconds;
}
str += year + '-' + month + '-' + day + ' ' + hours + ':' + minutes + ':' + seconds + ' ';
console.log(str);
}
Regardez le travail ici: https://jsfiddle.net/40jbg8qt/
Vous pouvez utiliser quelque chose comme ceci:
let pais:string = 'Ecuador';
let codigo:number = 593;
let opcionUno:string = this.pais + this.number
let opcionDos:string = this.pais.concat(this.number);