diff --git a/hosting/models.py b/hosting/models.py
index 49932f69..04f3ae30 100644
--- a/hosting/models.py
+++ b/hosting/models.py
@@ -1,7 +1,9 @@
 import os
 import logging
+from dateutil.relativedelta import relativedelta
 
 from django.db import models
+from django.utils import timezone
 from django.utils.functional import cached_property
 from Crypto.PublicKey import RSA
 from membership.models import StripeCustomer, CustomUser
@@ -172,3 +174,9 @@ class VMDetail(models.Model):
     ipv6 = models.TextField(default='')
     created_at = models.DateTimeField(auto_now_add=True)
     terminated_at = models.DateTimeField(null=True)
+
+    def end_date(self):
+        end_date = self.terminated_at if self.terminated_at else timezone.now()
+        months = relativedelta(end_date, self.created_at).months or 1
+        end_date = self.created_at + relativedelta(months=months, days=-1)
+        return end_date
diff --git a/hosting/static/hosting/css/commons.css b/hosting/static/hosting/css/commons.css
index 317caabc..cdf078a0 100644
--- a/hosting/static/hosting/css/commons.css
+++ b/hosting/static/hosting/css/commons.css
@@ -375,4 +375,12 @@
   outline: none;
   color: #999;
   fill: #999;
+}
+
+.locale_date {
+  opacity: 0;
+}
+
+.locale_date.done{
+  opacity: 1;
 }
\ No newline at end of file
diff --git a/hosting/templates/hosting/order_detail.html b/hosting/templates/hosting/order_detail.html
index c81a893f..fe200f6e 100644
--- a/hosting/templates/hosting/order_detail.html
+++ b/hosting/templates/hosting/order_detail.html
@@ -32,11 +32,11 @@
             {% endif %}
             <p>
                 <strong>{% trans "Date" %}:</strong>
-                <span id="order-created_at">
+                <span class="locale_date">
                     {% if order %}
-                        {{order.created_at|date:'Y-m-d H:i'}}
+                        {{order.created_at|date:'Y-m-d h:i a'}}
                     {% else %}
-                        {% now "Y-m-d H:i" %}
+                        {% now "Y-m-d h:i a" %}
                     {% endif %}
                 </span>
             </p>
@@ -107,7 +107,9 @@
                         {% if vm.created_at %}
                             <p>
                                 <span>{% trans "Period" %}: </span>
-                                <span>{{ vm.created_at|date:'Y/m/d' }} - {% if vm.terminated_at %}{{ vm.terminated_at|date:'Y/m/d' }}{% else %}{% now 'Y/m/d' %}{% endif %}</span>
+                                <span>
+                                    <span class="locale_date" data-format="YYYY/MM/DD">{{ vm.created_at|date:'Y-m-d h:i a' }}</span> - <span class="locale_date" data-format="YYYY/MM/DD">{{ subscription_end_date|date:'Y-m-d h:i a' }}</span>
+                                </span>
                             </p>
                         {% endif %}
                         <p>
@@ -194,12 +196,16 @@
 <script type="text/javascript">
     {% trans "Some problem encountered. Please try again later." as err_msg %}
     var create_vm_error_message = '{{err_msg|safe}}';
-
     window.onload = function () {
-        var locale_date = moment.utc(document.getElementById("order-created_at").textContent, 'YYYY-MM-DD HH:mm').toDate();
-        locale_date = moment(locale_date).format("YYYY-MM-DD h:mm:ss a");
-        document.getElementById('order-created_at').innerHTML = locale_date;
-
+        var locale_dates = document.getElementsByClassName("locale_date");
+        var formats = ['YYYY-MM-DD hh:mm a']
+        var i;
+        for (i = 0; i < locale_dates.length; i++) {
+            var oldDate = moment.utc(locale_dates[i].textContent, formats);
+            var outputFormat = locale_dates[i].getAttribute('data-format') || oldDate._f;
+            locale_dates[i].innerHTML = oldDate.local().format(outputFormat);
+            locale_dates[i].className += ' done';
+        }
     };
 </script>
 {%endblock%}
diff --git a/hosting/views.py b/hosting/views.py
index 6b314f5b..f6d0f0eb 100644
--- a/hosting/views.py
+++ b/hosting/views.py
@@ -703,6 +703,7 @@ class OrdersHostingDetailView(LoginRequiredMixin,
                     disk_size=context['vm']['disk_size'],
                     memory=context['vm']['memory']
                 )
+                context['subscription_end_date'] = vm_detail.end_date()
             except VMDetail.DoesNotExist:
                 try:
                     manager = OpenNebulaManager(