获取服务器时间跨天检测

main
zhangaotian 2025-04-09 17:45:53 +08:00
parent 03d0f96d61
commit 5331926f26
4 changed files with 34 additions and 6 deletions

View File

@ -0,0 +1,13 @@
namespace Framework
{
public partial class Constants
{
public sealed class RedPoint
{
/// <summary>
/// 商店动态红点
/// </summary>
public const int SHOP_RED_NODE = 80;
}
}
}

View File

@ -0,0 +1,11 @@
fileFormatVersion: 2
guid: ae50184e4aa85461cbfd0317455485c9
MonoImporter:
externalObjects: {}
serializedVersion: 2
defaultReferences: []
executionOrder: 0
icon: {instanceID: 0}
userData:
assetBundleName:
assetBundleVariant:

View File

@ -1,14 +1,16 @@
using System;
using PhxhSDK;
using Framework;
using Gameplay;
using UnityEngine;
using Gameplay.Common;
public class CrossDayChecker : Singlenton<CrossDayChecker>, IUpdatable, IInitable
{
public bool DeleteSaveData;
// 检查时间点
private TimeSpan checkPointTime = new TimeSpan(5, 0, 0);
private TimeSpan checkPointTime;
// 记录上次检查的时间
private DateTime lastCheckTime;
@ -25,7 +27,7 @@ public class CrossDayChecker : Singlenton<CrossDayChecker>, IUpdatable, IInitabl
{
if (!_init) return;
if (disableCheck) return;
var now = DateTime.Now;
var now = CommonUtils.GetCurTime(CommonUtils.E_TimeType.Server);
// 检测跨天
if (HasCrossedDay(lastCheckTime, now))
@ -53,6 +55,8 @@ public class CrossDayChecker : Singlenton<CrossDayChecker>, IUpdatable, IInitabl
public void InitForLoginOk()
{
checkPointTime = new TimeSpan(GLConfig.Inst.data.DailyChangeHour, 0, 0);
if (PlayerPrefs.HasKey("CrossDayChecker_LastCheckTime"))
{
string savedTime = PlayerPrefs.GetString("CrossDayChecker_LastCheckTime");
@ -63,15 +67,15 @@ public class CrossDayChecker : Singlenton<CrossDayChecker>, IUpdatable, IInitabl
}
else
{
DebugUtil.Log("CrossDayChecker: 无法解析存储的时间,使用当前时间作为初始化时间。");
lastCheckTime = DateTime.Now;
DebugUtil.Log("CrossDayChecker: 无法解析存储的时间,使用当前服务器时间作为初始化时间。");
lastCheckTime = CommonUtils.GetCurTime(CommonUtils.E_TimeType.Server);
SendAllCrossEvent();
}
}
else
{
DebugUtil.Log("CrossDayChecker: 本地存储中未找到上次检查时间,使用当前时间作为初始化时间。");
lastCheckTime = DateTime.Now;
DebugUtil.Log("CrossDayChecker: 本地存储中未找到上次检查时间,使用当前服务器时间作为初始化时间。");
lastCheckTime = CommonUtils.GetCurTime(CommonUtils.E_TimeType.Server);
SendAllCrossEvent();
}