当前位置:首页>python>【上班摸鱼小程序】附python代码

【上班摸鱼小程序】附python代码

  • 2026-08-18 23:10:36
【上班摸鱼小程序】附python代码
对多数人来说,上班是较为的,而周末和节假日是快乐的。
针对这个现象,本程序设计了实时的下班倒计时、下一次节假日倒计时、周末倒计时功能。如下:
如果需要加班,可以点击左下角设置按钮,修改下班时间。程序默认17:00下班。
如果坐班实在过于无聊,可以点击右侧猫猫图,进入摸鱼小游戏界面
首先会展示小游戏的中心思想:正入万山圈子里,一山放过一山拦
长按空格键蓄力跳跃(出现蓄力条),控制白色方块依次跳过淡黑色平台
跳出右侧界面,则挑战成功,展示提示语:穿尽千山与万水,始知天地本来宽。如下:
如果不幸掉入深渊,或者撞到平台侧面,则挑战失败,展示失败提示语:万物皆生,唯你独枯。茫茫天地间,竟全然无你托身之所……按R重试,按T退出。如下:
节假日倒计时功能的法定节假日包括元旦、春节、清明、劳动,端午、国庆、中秋。传统节日需从农历换算到洋历。
猫猫图分享如下:
完整代码如下:
import tkinter as tkfrom tkinter import messageboxfrom datetime import datetime, timedelta import os import tkinter.font as tkFont from zhdate import ZhDateimport randomDEFAULT_OFF_WORK_TIME = "17:00:00"off_work_time_str = DEFAULT_OFF_WORK_TIMEBG_COLOR       = "#000000"FG_COLOR       = "#cccccc"TITLE_COLOR    = "#ffffff"ACCENT_RED     = "#ff6b6b"ACCENT_CYAN    = "#ff6b6b"ACCENT_YELLOW  = "#ff6b6b"BUTTON_COLOR   = "#333333"BUTTON_TEXT    = "white"POPUP_BG       = "#1a1a1a"MASK_COLOR     = "#0a0a0a"CAT_IMAGE_PATH = r"E:\Bil大业\ELSE\下班\Cat.png" def get_next_holiday_info():    now = datetime.now()    current_year = now.year     spring_festival = ZhDate(current_year, 11).to_datetime()    dragon_boat = ZhDate(current_year, 55).to_datetime()    mid_autumn = ZhDate(current_year, 815).to_datetime()    qingming = datetime(current_year, 44)    holidays = [        (datetime(current_year, 11), "元旦"),        (spring_festival, "春节"),        (qingming, "清明节"),        (datetime(current_year, 51), "劳动节"),        (dragon_boat, "端午节"),        (datetime(current_year, 101), "国庆节"),        (mid_autumn, "中秋节"),    ]    min_diff = None     next_holiday_name = ""    for year_offset in [01]:        year = current_year + year_offset         for holiday_date, name in holidays:            if name == "元旦":                date_obj = datetime(year, 11)            elif name == "春节":                date_obj = ZhDate(year, 11).to_datetime()            elif name == "清明节":                date_obj = datetime(year, 44)            elif name == "劳动节":                date_obj = datetime(year, 51)            elif name == "端午节":                date_obj = ZhDate(year, 55).to_datetime()            elif name == "国庆节":                date_obj = datetime(year, 101)            elif name == "中秋节":                date_obj = ZhDate(year, 815).to_datetime()            else:                continue             if date_obj > now:                diff = date_obj - now                 days = diff.days                 if min_diff is None or days < min_diff:                    min_diff = days                     next_holiday_name = name     if min_diff is not None:        return min_diff, next_holiday_name     return 0"暂无数据"def calculate_time_diff(target_time_str):    now = datetime.now()    try:        h, m, s = map(int, target_time_str.split(':'))        target_time_today = now.replace(hour=h, minute=m, second=s, microsecond=0)    except ValueError:        return "时间格式错误", ACCENT_RED     if now >= target_time_today:        return "已经下班啦!", ACCENT_RED     delta = target_time_today - now     total_seconds = int(delta.total_seconds())    hours, remainder = divmod(total_seconds, 3600)    minutes, seconds = divmod(remainder, 60)    return f"{hours:02d}{minutes:02d}{seconds:02d}秒", ACCENT_RED def get_weekend_diff(target_time_str):    now = datetime.now()    weekday = now.weekday()    if weekday >= 5:        return "现在就是周末哦~", ACCENT_CYAN     try:        h, m, s = map(int, target_time_str.split(':'))    except ValueError:        return "时间格式错误", ACCENT_CYAN     if weekday == 4:        target = now.replace(hour=h, minute=m, second=s, microsecond=0)        delta = target - now         total_seconds = int(delta.total_seconds())        if total_seconds < 0:            return "周末已开始~", ACCENT_CYAN         hours, remainder = divmod(total_seconds, 3600)        minutes, seconds = divmod(remainder, 60)        return f"{hours}小时{minutes}{seconds}秒", ACCENT_CYAN     else:        days_to_friday = 4 - weekday         target = now + timedelta(days=days_to_friday)        target = target.replace(hour=h, minute=m, second=s, microsecond=0)        delta = target - now         return f"{delta.days}天", ACCENT_CYAN class RoundedButton(tk.Canvas):    def __init__(self, parent, text, command=None, radius=3,                 bg=BUTTON_COLOR, fg="white", font=("arial"11)):         tmp_font = tk.font.Font(family="arial", size=11)        text_w = tmp_font.measure(text)        w = text_w + 50         h = 40         super().__init__(parent, width=w, height=h,                         bg=parent["bg"], highlightthickness=0, cursor="hand2")        self.command = command         self.radius = radius         self.bg = bg         self.fg = fg         self.text = text         self.font = font         self._hover = False         self._draw()        self.bind("<Button-1>"lambda e: self.command() if self.command else None)        self.bind("<Enter>"lambda e: self._set_hover(True))        self.bind("<Leave>"lambda e: self._set_hover(False))    def _draw(self):        self.delete("all")        w = self.winfo_reqwidth()        h = self.winfo_reqheight()        r = self.radius         color = "#454545" if self._hover else self.bg         self.create_oval(002*r, 2*r, fill=color, outline=color)        self.create_oval(w-2*r, 0, w, 2*r, fill=color, outline=color)        self.create_oval(0, h-2*r, 2*r, h, fill=color, outline=color)        self.create_oval(w-2*r, h-2*r, w, h, fill=color, outline=color)        self.create_rectangle(r, 0, w-r, h, fill=color, outline=color)        self.create_rectangle(0, r, w, h-r, fill=color, outline=color)        self.create_text(w/2, h/2, text=self.text, fill=self.fg, font=self.font)    def _set_hover(self, hover):        self._hover = hover         self._draw()def create_rounded_image(image_path, size, radius=10):    try:        from PIL import Image, ImageDraw, ImageTk        img = Image.open(image_path).convert("RGBA")        img = img.resize(size, Image.LANCZOS)        mask = Image.new('L', size, 0)        draw = ImageDraw.Draw(mask)        draw.rounded_rectangle([(00), size], radius=radius, fill=255)        result = Image.new('RGBA', size, (0000))        result.paste(img, (00), mask)        return ImageTk.PhotoImage(result)    except ImportError:        return None    except Exception as e:        print(f"图片处理错误: {e}")        return Noneclass MiniGameApp:    def __init__(self, parent):        self.top = tk.Toplevel(parent)        self.top.title("摸鱼小游戏")        self.top.geometry("1200x500"        self.top.configure(bg="black")        self.top.resizable(FalseFalse)        self.canvas = tk.Canvas(self.top, width=1200, height=500, bg="black", highlightthickness=0)        self.canvas.pack()        self.top.bind("<KeyPress>"self.on_key_press)        self.top.bind("<KeyRelease>"self.on_key_release)        self.top.bind("<r>"self.restart_game)        self.top.bind("<t>"self.close_game)        self.top.bind("<R>"self.restart_game)        self.top.bind("<T>"self.close_game)        self.GRAVITY = 0.8        self.MAX_CHARGE = 22         self.CHARGE_RATE = 0.4         self.player = {'x'0'y'0'w'20'h'20'vx'0'vy'0}        self.platforms = []        self.is_charging = False         self.charge_power = 0        self.game_over = False        self.game_won = False        self.game_state = 'playing'        self.text_fade = 0.0        self.reset_game()        self.game_loop()    def generate_platforms(self):        self.platforms = []        current_x = 0        self.platforms.append({'x'0'y'350'w'120'h'50})        current_x = 120         while current_x < 1200:            gap = random.randint(80160)            width = random.randint(60100)            next_y = random.randint(280360)            self.platforms.append({                'x': current_x + gap,                'y': next_y,                'w': width,                'h'500 - next_y            })            current_x += gap + width    def reset_game(self):        self.generate_platforms()        start_plat = self.platforms[0]        self.player['x'] = start_plat['x'] + 10        self.player['y'] = start_plat['y'] - self.player['h']        self.player['vx'] = 0        self.player['vy'] = 0         self.game_over = False        self.game_won = False         self.is_charging = False         self.charge_power = 0        self.game_state = 'playing'        self.text_fade = 0.0        self.draw()    def on_key_press(self, event):        if event.keysym == 'space' and not self.game_over and not self.game_won:            self.is_charging = True    def on_key_release(self, event):        if event.keysym == 'space' and self.is_charging:            self.jump()            self.is_charging = False             self.charge_power = 0    def jump(self):        self.player['vx'] = 5 + (self.charge_power * 0.6)        self.player['vy'] = -(7 + (self.charge_power * 0.6))    def _get_faded_color(self, target_color_hex, progress):        if not target_color_hex.startswith('#'):            color_map = {                "red": (25500),                "gray": (128128128)            }            if target_color_hex in color_map:                rgb = color_map[target_color_hex]            else:                rgb = (255255255)        else:            h = target_color_hex.lstrip('#')            rgb = tuple(int(h[i:i+2], 16for i in (024))        r = int(rgb[0] * progress)        g = int(rgb[1] * progress)        b = int(rgb[2] * progress)        return f'#{r:02x}{g:02x}{b:02x}'    def update(self):        if self.game_over or self.game_won:            pass         else:            if self.is_charging:                if self.charge_power < self.MAX_CHARGE:                    self.charge_power += self.CHARGE_RATE            self.player['vy'] += self.GRAVITY            self.player['x'] += self.player['vx']            self.player['y'] += self.player['vy']            player_bottom = self.player['y'] + self.player['h']            player_left = self.player['x']            player_right = self.player['x'] + self.player['w']            for p in self.platforms:                plat_top = p['y']                plat_left = p['x']                plat_right = p['x'] + p['w']                if player_right > plat_left and player_left < plat_right:                    if player_bottom > plat_top:                        prev_bottom = player_bottom - self.player['vy']                        if self.player['vy'] > 0 and prev_bottom <= plat_top:                            self.player['y'] = plat_top - self.player['h']                            self.player['vy'] = 0                            self.player['vx'] = 0                            break                        else:                            self.game_over = True                            break            if self.player['x'] > 1200:                self.game_won = True            if self.player['y'] > 500:                self.game_over = True        current_state = 'won' if self.game_won else ('over' if self.game_over else 'playing')        if current_state != self.game_state:            self.game_state = current_state            self.text_fade = 0.0        if self.text_fade < 1.0:            self.text_fade += 0.03             if self.text_fade > 1.0:                self.text_fade = 1.0        self.draw()    def draw(self):        self.canvas.delete("all")        for p in self.platforms:            self.canvas.create_rectangle(                p['x'], p['y'],                 p['x'] + p['w'], p['y'] + p['h'],                 fill="#222222", outline=""            )        p = self.player        self.canvas.create_rectangle(            p['x'], p['y'],             p['x'] + p['w'], p['y'] + p['h'],             fill="white", outline=""        )        if self.is_charging:            ratio = self.charge_power / self.MAX_CHARGE             bar_width = ratio * 40             if ratio <= 0.5:                local_ratio = ratio * 2                r = 255                 g = int(255 * (1 - local_ratio))                b = 0            else:                local_ratio = (ratio - 0.5) * 2                r = int(255 - (255 - 139) * local_ratio)                g = 0                 b = 0             color_hex = f'#{r:02x}{g:02x}{b:02x}'            self.canvas.create_rectangle(                p['x'], p['y'] - 10,                p['x'] + bar_width, p['y'] - 5,                fill=color_hex, outline=""            )        if self.game_over:            text_color = self._get_faded_color("red"self.text_fade)            self.canvas.create_text(580200, text="万物皆生,唯你独枯。茫茫天地间,竟全然无你托身之所……", fill=text_color, font=("STKaiti"30))            text_color = self._get_faded_color("grey"self.text_fade)            self.canvas.create_text(9030, text="R: retry,  T: exit", fill=text_color, font=("times"12))        elif self.game_won:            text_color = self._get_faded_color("#00ff00"self.text_fade)            self.canvas.create_text(450200, text="穿尽千山与万水,始知天地本来宽.", fill=text_color, font=("STKaiti"30))            text_color = self._get_faded_color("grey"self.text_fade)            self.canvas.create_text(9030, text="R: retry,  T: exit", fill=text_color, font=("times"12))        else:            text_color = self._get_faded_color("white"self.text_fade)            self.canvas.create_text(45070, text="正入万山圈子里,一山放过一山拦——", fill=text_color, font=("STKaiti"20))    def game_loop(self):        self.update()        self.top.after(20self.game_loop)    def restart_game(self, event=None):        self.reset_game()    def close_game(self, event=None):        self.top.destroy()class OffWorkCountdownApp:    def __init__(self, root):        self.root = root         self.root.title("下班倒计时界面")        self.root.geometry("590x390")        self.root.configure(bg=BG_COLOR)        self.title_font = ("arial"18"bold")        self.label_font = ("arial"12)        self.time_font  = ("arial"22"bold")        self.btn_font   = ("arials"11)        self.create_widgets()        self.update_time()    def create_widgets(self):        main = tk.Frame(self.root, bg=BG_COLOR)        main.pack(fill="both", expand=True, padx=15, pady=10)        left = tk.Frame(main, bg=BG_COLOR)        left.pack(side="left", fill="both", expand=True, padx=(020))        tk.Label(left, text="    ~下班倒计时~ ",                 font=self.title_font, bg=BG_COLOR, fg=TITLE_COLOR).pack(pady=(020), anchor="w")        f1 = tk.Frame(left, bg=BG_COLOR)        f1.pack(pady=8, fill="x")        tk.Label(f1, text="离下班还有:", font=self.label_font,                 bg=BG_COLOR, fg=FG_COLOR).pack(anchor="w")        self.lbl_off_work = tk.Label(f1, text="计算中...", font=self.time_font,                                     bg=BG_COLOR, fg=ACCENT_RED)        self.lbl_off_work.pack(anchor="w", pady=(50))        f2 = tk.Frame(left, bg=BG_COLOR)        f2.pack(pady=8, fill="x")        tk.Label(f2, text="离周末还有:", font=self.label_font,                 bg=BG_COLOR, fg=FG_COLOR).pack(anchor="w")        self.lbl_friday = tk.Label(f2, text="计算中...", font=self.time_font,                                   bg=BG_COLOR, fg=ACCENT_CYAN)        self.lbl_friday.pack(anchor="w", pady=(50))        f3 = tk.Frame(left, bg=BG_COLOR)        f3.pack(pady=8, fill="x")        tk.Label(f3, text="离节假日还有:", font=self.label_font,                 bg=BG_COLOR, fg=FG_COLOR).pack(anchor="w")        self.lbl_holiday = tk.Label(f3, text="计算中...", font=("arial"16),                                    bg=BG_COLOR, fg=ACCENT_YELLOW)        self.lbl_holiday.pack(anchor="w", pady=(50))        RoundedButton(left, text="⚙️设置下班时间",                      command=self.open_settings).pack(pady=(300), anchor="w")        right = tk.Frame(main, bg=BG_COLOR, width=390, height=390)        right.pack(side="right", fill="y")        right.pack_propagate(False)        mask = tk.Frame(right, bg=MASK_COLOR, width=360, height=370)        mask.place(relx=0.5, rely=0.5, anchor="center")        self.cat_img = None         if os.path.exists(CAT_IMAGE_PATH):            try:                self.cat_img = create_rounded_image(CAT_IMAGE_PATH, size=(320320), radius=10)                if self.cat_img:                    img_label = tk.Label(right, image=self.cat_img, bg=MASK_COLOR, bd=0, cursor="hand2")                    img_label.place(relx=0.5, rely=0.5, anchor="center")                    img_label.bind("<Button-1>"lambda e: self.open_game())                else:                    from PIL import Image, ImageTk                     img = Image.open(CAT_IMAGE_PATH)                    img = img.resize((320320), Image.LANCZOS)                    self.cat_img = ImageTk.PhotoImage(img)                    img_label = tk.Label(right, image=self.cat_img, bg=MASK_COLOR, bd=0, cursor="hand2")                    img_label.place(relx=0.5, rely=0.5, anchor="center")                    img_label.bind("<Button-1>"lambda e: self.open_game())            except ImportError:                tk.Label(right, text="(需安装Pillow才能显示图片哦)\npip install pillow",                         bg=MASK_COLOR, fg=FG_COLOR, font=("arial"11),                         justify="center").place(relx=0.5, rely=0.5, anchor="center")        else:            tk.Label(right, text=f"这里本该有只哈基米。",                     bg=MASK_COLOR, fg=FG_COLOR, font=("arial"10),                     justify="center").place(relx=0.5, rely=0.5, anchor="center")    def update_time(self):        global off_work_time_str         text, color = calculate_time_diff(off_work_time_str)        self.lbl_off_work.config(text=text, fg=color)        text, color = get_weekend_diff(off_work_time_str)        self.lbl_friday.config(text=text, fg=color)        days, name = get_next_holiday_info()        self.lbl_holiday.config(text=f"{days}天 ({name})")        self.root.after(1000self.update_time)    def open_settings(self):        top = tk.Toplevel(self.root)        top.title("设置")        top.geometry("320x160")        top.configure(bg=POPUP_BG)        tk.Label(top, text="请输入下班时间 (HH:MM:SS):",                 bg=POPUP_BG, fg=FG_COLOR, font=("arial"10)).pack(pady=15)        entry = tk.Entry(top, font=("arial"12), justify="center",                         bg="#3c3f41", fg="white", insertbackground="white")        entry.insert(0, off_work_time_str)        entry.pack(pady=5)        entry.focus_set()        def save():            global off_work_time_str             new_time = entry.get()            try:                h, m, s = map(int, new_time.split(':'))                if 0 <= h < 24 and 0 <= m < 60 and 0 <= s < 60:                    off_work_time_str = new_time                     messagebox.showinfo("成功""下班时间已更新!")                    top.destroy()                else:                    messagebox.showerror("错误""时间数值不合法!")            except Exception:                messagebox.showerror("错误""格式错误,请使用 HH:MM:SS")        tk.Button(top, text="确定", command=save,                  bg=BUTTON_COLOR, fg=BUTTON_TEXT, font=("arial"10),                  relief="flat").pack(pady=15)    def open_game(self):        MiniGameApp(self.root)if __name__ == "__main__":    root = tk.Tk()    app = OffWorkCountdownApp(root)    root.mainloop()
该小程序以倒计时量化下班期待,以优美的诗词提供情绪情绪,为打工人提供了一个对抗职场倦怠的“精神按摩仪”。
-END-
往期:
零基础如何用Deepseek自制游戏【Python】
Chrome小恐龙C++硬核复现(上古年代无AI代码)
一文速通决策树和随机森林算法(Matlab实战算例)
PINN+CFD简版综述(物理信息神经网络应用于计算流体力学)
工程优化万能思路:神经网络代理模型&智能优化算法
浙江省温州市:改革开放实践与民营经济产业转型【综述长文】做梦做出一套算法?
五种机器学习模型(强行)解决实际问题+代码

最新文章

随机文章

基本 文件 流程 错误 SQL 调试
  1. 请求信息 : 2026-08-22 03:45:09 HTTP/2.0 GET : https://f.mffb.com.cn/a/504991.html
  2. 运行时间 : 0.153981s [ 吞吐率:6.49req/s ] 内存消耗:4,652.38kb 文件加载:140
  3. 缓存信息 : 0 reads,0 writes
  4. 会话信息 : SESSION_ID=0b8f0e93b54d8faa960c88f58ae38e29
  1. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/public/index.php ( 0.79 KB )
  2. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/autoload.php ( 0.17 KB )
  3. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_real.php ( 2.49 KB )
  4. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/platform_check.php ( 0.90 KB )
  5. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/ClassLoader.php ( 14.03 KB )
  6. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/composer/autoload_static.php ( 4.90 KB )
  7. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper.php ( 8.34 KB )
  8. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/helper.php ( 2.19 KB )
  9. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/helper.php ( 1.47 KB )
  10. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/stubs/load_stubs.php ( 0.16 KB )
  11. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Exception.php ( 1.69 KB )
  12. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Facade.php ( 2.71 KB )
  13. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/deprecation-contracts/function.php ( 0.99 KB )
  14. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap.php ( 8.26 KB )
  15. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/polyfill-mbstring/bootstrap80.php ( 9.78 KB )
  16. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/Resources/functions/dump.php ( 1.49 KB )
  17. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-dumper/src/helper.php ( 0.18 KB )
  18. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/symfony/var-dumper/VarDumper.php ( 4.30 KB )
  19. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/App.php ( 15.30 KB )
  20. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-container/src/Container.php ( 15.76 KB )
  21. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/container/src/ContainerInterface.php ( 1.02 KB )
  22. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/provider.php ( 0.19 KB )
  23. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Http.php ( 6.04 KB )
  24. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Str.php ( 7.29 KB )
  25. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Env.php ( 4.68 KB )
  26. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/common.php ( 0.03 KB )
  27. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/helper.php ( 18.78 KB )
  28. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Config.php ( 5.54 KB )
  29. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/app.php ( 0.95 KB )
  30. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cache.php ( 0.78 KB )
  31. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/console.php ( 0.23 KB )
  32. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/cookie.php ( 0.56 KB )
  33. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/database.php ( 2.48 KB )
  34. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Env.php ( 1.67 KB )
  35. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/filesystem.php ( 0.61 KB )
  36. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/lang.php ( 0.91 KB )
  37. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/log.php ( 1.35 KB )
  38. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/middleware.php ( 0.19 KB )
  39. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/route.php ( 1.89 KB )
  40. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/session.php ( 0.57 KB )
  41. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/trace.php ( 0.34 KB )
  42. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/config/view.php ( 0.82 KB )
  43. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/event.php ( 0.25 KB )
  44. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Event.php ( 7.67 KB )
  45. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/service.php ( 0.13 KB )
  46. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/AppService.php ( 0.26 KB )
  47. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Service.php ( 1.64 KB )
  48. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Lang.php ( 7.35 KB )
  49. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/lang/zh-cn.php ( 13.70 KB )
  50. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/Error.php ( 3.31 KB )
  51. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/RegisterService.php ( 1.33 KB )
  52. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/services.php ( 0.14 KB )
  53. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/PaginatorService.php ( 1.52 KB )
  54. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ValidateService.php ( 0.99 KB )
  55. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/service/ModelService.php ( 2.04 KB )
  56. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Service.php ( 0.77 KB )
  57. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Middleware.php ( 6.72 KB )
  58. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/initializer/BootService.php ( 0.77 KB )
  59. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Paginator.php ( 11.86 KB )
  60. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-validate/src/Validate.php ( 63.20 KB )
  61. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/Model.php ( 23.55 KB )
  62. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Attribute.php ( 21.05 KB )
  63. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/AutoWriteData.php ( 4.21 KB )
  64. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/Conversion.php ( 6.44 KB )
  65. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/DbConnect.php ( 5.16 KB )
  66. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/ModelEvent.php ( 2.33 KB )
  67. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/concern/RelationShip.php ( 28.29 KB )
  68. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Arrayable.php ( 0.09 KB )
  69. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/contract/Jsonable.php ( 0.13 KB )
  70. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/model/contract/Modelable.php ( 0.09 KB )
  71. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Db.php ( 2.88 KB )
  72. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/DbManager.php ( 8.52 KB )
  73. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Log.php ( 6.28 KB )
  74. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Manager.php ( 3.92 KB )
  75. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerTrait.php ( 2.69 KB )
  76. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/log/src/LoggerInterface.php ( 2.71 KB )
  77. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cache.php ( 4.92 KB )
  78. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/psr/simple-cache/src/CacheInterface.php ( 4.71 KB )
  79. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/helper/Arr.php ( 16.63 KB )
  80. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/driver/File.php ( 7.84 KB )
  81. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/cache/Driver.php ( 9.03 KB )
  82. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/CacheHandlerInterface.php ( 1.99 KB )
  83. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/Request.php ( 0.09 KB )
  84. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Request.php ( 55.78 KB )
  85. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/middleware.php ( 0.25 KB )
  86. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Pipeline.php ( 2.61 KB )
  87. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/TraceDebug.php ( 3.40 KB )
  88. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/middleware/SessionInit.php ( 1.94 KB )
  89. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Session.php ( 1.80 KB )
  90. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/driver/File.php ( 6.27 KB )
  91. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/SessionHandlerInterface.php ( 0.87 KB )
  92. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/session/Store.php ( 7.12 KB )
  93. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Route.php ( 23.73 KB )
  94. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleName.php ( 5.75 KB )
  95. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Domain.php ( 2.53 KB )
  96. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleGroup.php ( 22.43 KB )
  97. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Rule.php ( 26.95 KB )
  98. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/RuleItem.php ( 9.78 KB )
  99. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/route/app.php ( 1.72 KB )
  100. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/Route.php ( 4.70 KB )
  101. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/dispatch/Controller.php ( 4.74 KB )
  102. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/route/Dispatch.php ( 10.44 KB )
  103. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/controller/Index.php ( 4.81 KB )
  104. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/app/BaseController.php ( 2.05 KB )
  105. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/facade/Db.php ( 0.93 KB )
  106. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/connector/Mysql.php ( 5.44 KB )
  107. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/PDOConnection.php ( 52.47 KB )
  108. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Connection.php ( 8.39 KB )
  109. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/ConnectionInterface.php ( 4.57 KB )
  110. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/builder/Mysql.php ( 16.58 KB )
  111. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Builder.php ( 24.06 KB )
  112. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseBuilder.php ( 27.50 KB )
  113. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/Query.php ( 15.71 KB )
  114. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/BaseQuery.php ( 45.13 KB )
  115. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TimeFieldQuery.php ( 7.43 KB )
  116. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/AggregateQuery.php ( 3.26 KB )
  117. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ModelRelationQuery.php ( 20.07 KB )
  118. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ParamsBind.php ( 3.66 KB )
  119. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/ResultOperation.php ( 7.01 KB )
  120. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/WhereQuery.php ( 19.37 KB )
  121. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/JoinAndViewQuery.php ( 7.11 KB )
  122. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/TableFieldInfo.php ( 2.63 KB )
  123. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-orm/src/db/concern/Transaction.php ( 2.77 KB )
  124. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/driver/File.php ( 5.96 KB )
  125. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/LogHandlerInterface.php ( 0.86 KB )
  126. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/log/Channel.php ( 3.89 KB )
  127. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/event/LogRecord.php ( 1.02 KB )
  128. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-helper/src/Collection.php ( 16.47 KB )
  129. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/facade/View.php ( 1.70 KB )
  130. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/View.php ( 4.39 KB )
  131. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Response.php ( 8.81 KB )
  132. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/response/View.php ( 3.29 KB )
  133. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/Cookie.php ( 6.06 KB )
  134. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-view/src/Think.php ( 8.38 KB )
  135. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/framework/src/think/contract/TemplateHandlerInterface.php ( 1.60 KB )
  136. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/Template.php ( 46.61 KB )
  137. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/driver/File.php ( 2.41 KB )
  138. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-template/src/template/contract/DriverInterface.php ( 0.86 KB )
  139. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/runtime/temp/067d451b9a0c665040f3f1bdd3293d68.php ( 11.98 KB )
  140. /yingpanguazai/ssd/ssd1/www/f.mffb.com.cn/vendor/topthink/think-trace/src/Html.php ( 4.42 KB )
  1. CONNECT:[ UseTime:0.000751s ] mysql:host=127.0.0.1;port=3306;dbname=f_mffb;charset=utf8mb4
  2. SHOW FULL COLUMNS FROM `fenlei` [ RunTime:0.000646s ]
  3. SELECT * FROM `fenlei` WHERE `fid` = 0 [ RunTime:0.022158s ]
  4. SELECT * FROM `fenlei` WHERE `fid` = 63 [ RunTime:0.000934s ]
  5. SHOW FULL COLUMNS FROM `set` [ RunTime:0.000566s ]
  6. SELECT * FROM `set` [ RunTime:0.000465s ]
  7. SHOW FULL COLUMNS FROM `article` [ RunTime:0.000543s ]
  8. SELECT * FROM `article` WHERE `id` = 504991 LIMIT 1 [ RunTime:0.005180s ]
  9. UPDATE `article` SET `lasttime` = 1787341509 WHERE `id` = 504991 [ RunTime:0.001038s ]
  10. SELECT * FROM `fenlei` WHERE `id` = 66 LIMIT 1 [ RunTime:0.000272s ]
  11. SELECT * FROM `article` WHERE `id` < 504991 ORDER BY `id` DESC LIMIT 1 [ RunTime:0.000508s ]
  12. SELECT * FROM `article` WHERE `id` > 504991 ORDER BY `id` ASC LIMIT 1 [ RunTime:0.000478s ]
  13. SELECT * FROM `article` WHERE `id` < 504991 ORDER BY `id` DESC LIMIT 10 [ RunTime:0.000983s ]
  14. SELECT * FROM `article` WHERE `id` < 504991 ORDER BY `id` DESC LIMIT 10,10 [ RunTime:0.000809s ]
  15. SELECT * FROM `article` WHERE `id` < 504991 ORDER BY `id` DESC LIMIT 20,10 [ RunTime:0.001286s ]
0.155417s