2017-10-12 1 views
0

J'ai un format de date « 19 octobre 2017 » et que vous voulez convertir en ce format « 20171019 »Convertir le format de date en utilisant Javascript VueJS

est-il un moyen rapide de faire cela? J'utilise FlatPickr dans VueJs. S'il vous plaît trouver mon code ci-dessous si son aide.

Merci

import flatPickr from 'vue-flatpickr-component'; 
    import 'flatpickr/dist/flatpickr.css'; 
    import Navigation from './Navigation' 
    import bus from '../bus' 
    export default { 
    data() { 
     return { 
     showPanel: false, 
     isClosed: false, 
     arrival: null, 
     departure: null, 
     config: { 
      dateFormat: "Ymd" 
     } 
     } 
    }, 
    components: { 
     flatPickr 
    }, 
    methods: { 
     closeMenu: function() { 
     this.$store.state.showBooking = false; 
     } 
    }, 
    mounted() { 
     bus.$on('show-booking',() => { 
     this.showPanel = true; 
     }) 
    } 
    } 
+0

Vous pouvez juste [* reformater la chaîne *] (https:// stackoverflo w.com/questions/39856462/javascript-convert-string-with-full-month-to-date-object/39870230#39870230). – RobG

Répondre

0

Vous pouvez le faire en créant un nouvel objet Date à l'aide de votre chaîne.

var date = new Date("19 Oct 2017"); 
 

 
var result = "" + date.getFullYear() + ((date.getMonth() + 1) > 9 ? '' : '0') + (date.getMonth() + 1) + (date.getDate() > 9 ? '' : '0') + date.getDate(); 
 

 
console.log(result)

+1

L'utilisation de l'analyseur intégré n'est pas recommandée, en particulier pour les formats de date non standard. – RobG

+0

@RobG si l'analyse de date n'est pas basée sur une norme et peut produire des résultats différents dans différents navigateurs? Je ne le savais pas! – Walk

1

Vous pouvez briser la chaîne de la même façon un analyseur serait, mais éviter de créer une date, puis formatez les parties. Cela évitera les caprices de l'analyseur intégrée Date:

function reformatDate(s) { 
 
    function z(n){return ('0'+n).slice(-2)} 
 
    var months = [,'jan','feb','mar','apr','may','jun', 
 
       'jul','aug','sep','oct','nov','dec']; 
 
    var b = s.toLowerCase().split(' '); 
 
    return b[2] + z(months.indexOf(b[1])) + z(b[0]); 
 
} 
 

 
console.log(reformatDate('19 Oct 2017')); 
 
console.log(reformatDate('1 Jan 2017'));

0

Une autre bonne option est d'utiliser moment.js lib pour formater la date, vous devez d'abord l'installer dans votre projet par NPM npm i --save moment (ou voir plus d'options sur le site officiel) et alors vous devriez seulement l'importer dans votre composant et changer la date au format désiré:

import moment from 'moment' 
const formattedDate = moment('19 Oct 2017').format('YYYYMMDD') 
console.log(formattedDate) //20171019