Skip to content

Commit

Permalink
#22 修复时区差异导致的bug
Browse files Browse the repository at this point in the history
  • Loading branch information
ZhangYiQiu committed Dec 9, 2023
1 parent a616117 commit dbcbdcf
Show file tree
Hide file tree
Showing 3 changed files with 49 additions and 43 deletions.
8 changes: 5 additions & 3 deletions src/TokenPay/Views/Home/Pay.cshtml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
@{
ViewData["Title"] = "支付页";
var Now = DateTime.Now.ToUniversalTime();
var ExpireTime = ViewData.ContainsKey("ExpireTime") ? Convert.ToDateTime(ViewData["ExpireTime"]).ToUniversalTime() : Now;
}
@using TokenPay.Domains;
@using TokenPay.Extensions
Expand Down Expand Up @@ -59,7 +61,7 @@ else
订单编号:<span class="text-danger">@Model.OutOrderId</span>
</div>
<div class="mb-2">
过期时间:<span class="text-danger">@ViewData["ExpireTime"]</span>
过期时间:<span class="text-danger">@ExpireTime.ToLocalTime().ToString("yyyy-MM-dd HH:mm:ss")</span>
</div>
<div class="mt-4 text-start">
<div>区块链货币购买地址</div>
Expand All @@ -72,10 +74,10 @@ else
@section Scripts{
<script>
let Time;
var EndTime = new Date('@ViewData["ExpireTime"]?.ToString()?.Replace("-","/")');
var EndTime = new Date('@ExpireTime.ToUniversalTime().ToString("yyyy/MM/dd HH:mm:ss")');
function timer() {
window.setInterval(function () {
var intDiff = (EndTime - new Date()) / 1000
var intDiff = (EndTime - new Date('@Now.ToString("yyyy/MM/dd HH:mm:ss")')) / 1000
if (intDiff <= 0) return;
$(".time").removeClass("invisible")
var day = 0,
Expand Down
76 changes: 39 additions & 37 deletions src/TokenPay/Views/Home/Pay.en.cshtml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
@{
ViewData["Title"] = "Pay";
var Now = DateTime.Now.ToUniversalTime();
var ExpireTime = ViewData.ContainsKey("ExpireTime") ? Convert.ToDateTime(ViewData["ExpireTime"]).ToUniversalTime() : Now;
}
@using TokenPay.Domains;
@using TokenPay.Extensions
Expand Down Expand Up @@ -34,7 +36,7 @@ else
}
</style>
<div class="text-center pt-2">
<h4 class="display-6">You are paying <span class="text-danger">@Model.Currency.ToCurrency(chain,true)</span> for <span class="text-danger">@Model.Currency.ToBlockchainEnglishName(chain)</span> </h4>
<h4 class="display-6">You are paying <span class="text-danger">@Model.Currency.ToCurrency(chain, true)</span> for <span class="text-danger">@Model.Currency.ToBlockchainEnglishName(chain)</span> </h4>

<div class="d-flex mb-2">
<div class="input-group m-auto" style="width:410px;">
Expand All @@ -59,7 +61,7 @@ else
Order No:<span class="text-danger">@Model.OutOrderId</span>
</div>
<div class="mb-2">
Expiration:<span class="text-danger">@ViewData["ExpireTime"]</span>
Expiration:<span class="text-danger">@ExpireTime.ToString("yyyy-MM-dd HH:mm:ss \"GMT\"zzz")</span>
</div>
<div class="mt-4 text-start">
<div>You can buy blockchain currency at</div>
Expand All @@ -69,43 +71,43 @@ else
</div>
</div>

@section Scripts{
@section Scripts {
<script>
let Time;
var EndTime = new Date('@ViewData["ExpireTime"]?.ToString()?.Replace("-","/")');
function timer() {
window.setInterval(function () {
var intDiff = (EndTime - new Date()) / 1000
if (intDiff <= 0) return;
$(".time").removeClass("invisible")
var day = 0,
hour = 0,
minute = 0,
second = 0;
if (intDiff > 0) {
day = Math.floor(intDiff / (60 * 60 * 24));
hour = Math.floor(intDiff / (60 * 60)) - (day * 24);
minute = Math.floor(intDiff / 60) - (day * 24 * 60) - (hour * 60);
second = Math.floor(intDiff) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
}
if (minute <= 9) minute = '0' + minute;
if (second <= 9) second = '0' + second;
if (day)
$('#day_show').html(day + " Days ");
if (hour)
$('#hour_show').html('<s id="h"></s>' + hour + ' Hours ');
if (minute)
$('#minute_show').html('<s></s>' + minute + ' Minutes ');
$('#second_show').html('<s></s>' + second + ' Seconds ');
intDiff--;
}, 1000);
}
$(() => {
timer();
Time = setInterval(Check, 1000);
})
function Check() {
var RedirectUrl = "@(Model?.RedirectUrl)";
var EndTime = new Date('@ExpireTime.ToUniversalTime().ToString("yyyy/MM/dd HH:mm:ss")');
function timer() {
window.setInterval(function () {
var intDiff = (EndTime - new Date('@Now.ToString("yyyy/MM/dd HH:mm:ss")')) / 1000
if (intDiff <= 0) return;
$(".time").removeClass("invisible")
var day = 0,
hour = 0,
minute = 0,
second = 0;
if (intDiff > 0) {
day = Math.floor(intDiff / (60 * 60 * 24));
hour = Math.floor(intDiff / (60 * 60)) - (day * 24);
minute = Math.floor(intDiff / 60) - (day * 24 * 60) - (hour * 60);
second = Math.floor(intDiff) - (day * 24 * 60 * 60) - (hour * 60 * 60) - (minute * 60);
}
if (minute <= 9) minute = '0' + minute;
if (second <= 9) second = '0' + second;
if (day)
$('#day_show').html(day + " Days ");
if (hour)
$('#hour_show').html('<s id="h"></s>' + hour + ' Hours ');
if (minute)
$('#minute_show').html('<s></s>' + minute + ' Minutes ');
$('#second_show').html('<s></s>' + second + ' Seconds ');
intDiff--;
}, 1000);
}
$(() => {
timer();
Time = setInterval(Check, 1000);
})
function Check() {
var RedirectUrl = "@(Model?.RedirectUrl)";
$.get("/Check/@(Model?.Id)")
.then(x => {
if (x === 'Pending') {
Expand Down
8 changes: 5 additions & 3 deletions src/TokenPay/Views/Home/Pay.ru.cshtml
Original file line number Diff line number Diff line change
@@ -1,5 +1,7 @@
@{
ViewData["Title"] = "支付页";
var Now = DateTime.Now.ToUniversalTime();
var ExpireTime = ViewData.ContainsKey("ExpireTime") ? Convert.ToDateTime(ViewData["ExpireTime"]).ToUniversalTime() : Now;
}
@using TokenPay.Domains;
@using TokenPay.Extensions
Expand Down Expand Up @@ -59,7 +61,7 @@ else
Номер заказа:<span class="text-danger">@Model.OutOrderId</span>
</div>
<div class="mb-2">
Истечение срока:<span class="text-danger">@ViewData["ExpireTime"]</span>
Истечение срока:<span class="text-danger">@ExpireTime.ToString("yyyy-MM-dd HH:mm:ss \"GMT\"zzz")</span>
</div>
<div class="mt-4 text-start">
<div>Купить валюту блокчейна на этих сайтах</div>
Expand All @@ -72,10 +74,10 @@ else
@section Scripts{
<script>
let Time;
var EndTime = new Date('@ViewData["ExpireTime"]?.ToString()?.Replace("-","/")');
var EndTime = new Date('@ExpireTime.ToUniversalTime().ToString("yyyy/MM/dd HH:mm:ss")');
function timer() {
window.setInterval(function () {
var intDiff = (EndTime - new Date()) / 1000
var intDiff = (EndTime - new Date('@Now.ToString("yyyy/MM/dd HH:mm:ss")')) / 1000
if (intDiff <= 0) return;
$(".time").removeClass("invisible")
var day = 0,
Expand Down

0 comments on commit dbcbdcf

Please sign in to comment.