diff --git a/components/certif/List.vue b/components/certif/List.vue
index 378a7d031c77c7feea6f8edc64d07fb7eec19653..4f0d70351ee042547b855544cc8f1c5c77f12ef3 100644
--- a/components/certif/List.vue
+++ b/components/certif/List.vue
@@ -11,7 +11,7 @@
                         <BadgeQuality :quality="getNeighbor(certif).quality.ratio" v-if="getNeighbor(certif).status != 'REVOKED'" />
                     </th>
                     <td class="text-right">
-                        <small><span class="badge" :class="'badge-'+ $options.filters.dateStatus(certif.expires_on)">Expire le {{ certif.expires_on | formatDate }}</span></small>
+                        <small><span class="badge" :class="'badge-'+ $options.filters.dateStatus(certif.expires_on)">{{ $t('expire') }} {{ $d(new Date(certif.expires_on*1000), 'long') }}</span></small>
                     </td>
                 </tr>
             </tbody>
diff --git a/components/member/Card.vue b/components/member/Card.vue
index 876a431db927b30682b89defdbb0fc0de6b30303..fb91a51fa075772f220142e2c88a0786341c689c 100644
--- a/components/member/Card.vue
+++ b/components/member/Card.vue
@@ -39,7 +39,7 @@
                 <td :class="{
                     'list-group-item-success': hash.minDatePassed,
                     'list-group-item-danger': !hash.minDatePassed,
-                }">{{ hash.minDatePassed ? $t('oui') : $t('non')  }} <small v-if="!hash.minDatePassed">( > {{ hash.minDate | formatDate }} )</small></td>
+                }">{{ hash.minDatePassed ? $t('oui') : $t('non')  }} <small v-if="!hash.minDatePassed">( > {{ $d(new Date(hash.minDate*1000), 'long') }} )</small></td>
             </tr>
             <tr v-if="hash.status == 'MEMBER'">
                 <th scope="row">{{ $t('membre.nb_certifs') }} :</th>
diff --git a/i18n/locales/en.json b/i18n/locales/en.json
index 7bbde18efc50af5c82bff6622d9e7f2ce7d2b318..5449a4120d555b4e913034bf848c858c6246ddcb 100644
--- a/i18n/locales/en.json
+++ b/i18n/locales/en.json
@@ -8,6 +8,7 @@
     },
     "chargement" : "Loading",
     "dev": "In development",
+    "expire": "Expires",
     "futuremembers": "Future members",
     "inout": "Entries and exits of the web of trust for the last 2 days",
     "inpreparation": "In preparation",
diff --git a/i18n/locales/es.json b/i18n/locales/es.json
index 3c36da8d8015057e1dec38e5b440639e5d8cbff6..fc21560d293f2a6dd007646f7f1e56b5808062d9 100644
--- a/i18n/locales/es.json
+++ b/i18n/locales/es.json
@@ -8,6 +8,7 @@
     },
     "chargement" : "Cargando",
     "dev": "En desarrollo",
+    "expire": "Expira el",
     "futuremembers": "Futuros miembros",
     "inout": "Entradas y salidas de la web de confianza de los últimos 2 días",
     "inpreparation": "En preparación",
diff --git a/i18n/locales/fr.json b/i18n/locales/fr.json
index 3dbf2b399862f41cb281ff0de0520e2efc82743d..7b76b096bdd0bd9f985afbc0b05be8cc9c77bb42 100644
--- a/i18n/locales/fr.json
+++ b/i18n/locales/fr.json
@@ -8,6 +8,7 @@
     },
     "chargement" : "Chargement",
     "dev": "En Développement",
+    "expire": "Expire le",
     "futuremembers": "Futurs membres",
     "inout": "Entrées et sorties de la toile de confiance des 2 derniers jours",
     "inpreparation": "En préparation",
diff --git a/package.json b/package.json
index 7c6fdf6c4d4c9541d94cc161c8d65b071c3e3d2c..d4d7c14fb6cb8e174a91b195df43e2de3c216916 100644
--- a/package.json
+++ b/package.json
@@ -20,7 +20,6 @@
     "bootstrap": "^4.6.1",
     "chart.js": "^3.6.2",
     "core-js": "^3.15.1",
-    "dayjs": "^1.10.7",
     "graphql-tag": "^2.12.6",
     "nuxt": "^2.15.8",
     "vue": "^2.6.14"
diff --git a/pages/previsions/futurs_membres.vue b/pages/previsions/futurs_membres.vue
index 9a90ad8b8b42aeec1cdebe6fb3b0afb23e0feeca..4e75e42c085f679d298e0302c0654d130c49c573 100644
--- a/pages/previsions/futurs_membres.vue
+++ b/pages/previsions/futurs_membres.vue
@@ -56,7 +56,7 @@
               <table class="table table-striped">
                 <tbody>
                   <tr v-for="forecast in wwResult.forecastsByDates" :key="forecast.date">
-                    <th scope="row">{{ forecast.date | formatDateHeure }}</th>
+                    <th scope="row">{{ $d(new Date(forecast.date*1000), 'long') }} {{ $t('time.a') }} {{ $d(new Date(forecast.date*1000), 'hour') }}</th>
                     <td class="p-0">
                       <div class="list-group rounded-0">
                         <nuxt-link class="list-group-item list-group-item-action border-0 d-flex justify-content-between" :to="'/previsions/' + member.member.hash" v-for="member in forecast.forecasts" :key="member.member.uid">
diff --git a/plugins/filters.js b/plugins/filters.js
index e586ee3b1074b848950e3757961d3516148b97a5..d66a273a9760225900552af59e39bf03ef966c89 100644
--- a/plugins/filters.js
+++ b/plugins/filters.js
@@ -1,19 +1,7 @@
 import Vue from 'vue'
-import dayjs from 'dayjs'
-import 'dayjs/locale/fr'
-
-dayjs.locale('fr')
-
-Vue.filter('formatDate', (val) => {
-    return dayjs(val*1000).format('D MMMM YYYY')
-})
-
-Vue.filter('formatDateHeure', (val) => {
-    return dayjs(val*1000).format('D MMMM YYYY [à] H[h]')
-})
 
 Vue.filter('dateStatus', (val) => {
-    const diff = val - dayjs().unix()
+    const diff = val - (Date.now()/1000)
     switch (true) {
         case diff<0:
             return 'danger'