2017-10-12 1 views
0

Ich habe ein Datumsformat „19. Oktober 2017“ und wollen es dieses Format konvertieren „20171019“konvertieren Datumsformat in Javascript mit VueJS

Gibt es einen schnellen Weg, dies zu tun? Ich verwende FlatPickr in VueJs. Bitte finden Sie meinen Code unten, wenn es irgendeine Hilfe ist.

Dank

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

Sie können [* die Zeichenfolge * * neu formatieren] (https:// stackoverflo w.com/questions/39856462/javascript-convert-string-with-full-month-to-date-object/39870230#39870230). – RobG

Antwort

0

Sie können es durch neues Date-Objekt unter Verwendung der Zeichenfolge zu erstellen.

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

Die Verwendung des integrierten Parsers wird nicht empfohlen, insbesondere bei nicht standardmäßigen Datumsformaten. – RobG

+0

@RobG so Datum Parsing basiert nicht auf einigen Standards und kann unterschiedliche Ergebnisse in verschiedenen Browsern erzeugen? Das wusste ich nicht! – Walk

1

Sie können die Zeichenfolge in der gleichen Weise ein Parser würde, brechen aber vermeiden ein Datum zu schaffen, dann die Teile formatieren. Das wird die Launen des integrierten Date-Parsers zu vermeiden:

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

andere gute Möglichkeit ist moment.js lib zu verwenden, um das Datum zu formatieren, sollten Sie es zuerst installieren in Ihrem Projekt durch npm npm i --save moment (oder sehen Sie mehr Optionen auf der offiziellen Website) und dann müssten Sie nur in Ihre Komponente importieren und das Datum in das gewünschte Format ändern:

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