page data in utc yyyy-mm-dd, not local date

This commit is contained in:
Lingfei Song 2024-04-12 11:04:07 +07:00 committed by bigbrother666
parent e2d82eb7e8
commit fcae0138b7
5 changed files with 20 additions and 12 deletions

View File

@ -12,7 +12,9 @@ FROM alpine:latest
ARG PB_VERSION=0.21.1 ARG PB_VERSION=0.21.1
RUN apk add --no-cache unzip ca-certificates tzdata RUN apk add --no-cache unzip ca-certificates tzdata && \
ln -fs /usr/share/zoneinfo/Asia/Shanghai /etc/localtime
# download and unzip PocketBase # download and unzip PocketBase
ADD https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip /tmp/pb.zip ADD https://github.com/pocketbase/pocketbase/releases/download/v${PB_VERSION}/pocketbase_${PB_VERSION}_linux_amd64.zip /tmp/pb.zip

View File

@ -43,7 +43,7 @@ routerAdd(
}) })
) )
$app.dao().db().newQuery("SELECT DISTINCT DATE(created, 'localtime') as created FROM insights").all(result) $app.dao().db().newQuery("SELECT DISTINCT DATE(created) as created FROM insights").all(result)
return c.json( return c.json(
200, 200,

View File

@ -66,11 +66,11 @@ function InsightsScreen({}) {
const [, navigate] = useLocation() const [, navigate] = useLocation()
const queryClient = useQueryClient() const queryClient = useQueryClient()
const mut = useMutation({ const mut = useMutation({
mutationFn: (data) => { mutationFn: (params) => {
if (data && selectInsight && data.find((insight) => insight.id == selectedInsight).expand.articles.length == 1) { if (params && selectedInsight && data.find((insight) => insight.id == selectedInsight).expand.articles.length == 1) {
throw new Error("不能删除最后一篇文章") throw new Error("不能删除最后一篇文章")
} }
return unlinkArticle(data) return unlinkArticle(params)
}, },
onSuccess: () => { onSuccess: () => {
queryClient.invalidateQueries({ queryKey: ["insights", currentDate] }) queryClient.invalidateQueries({ queryKey: ["insights", currentDate] })

View File

@ -1,12 +1,15 @@
import { clsx } from "clsx" import { clsx } from "clsx"
import { twMerge } from "tailwind-merge" import { twMerge } from "tailwind-merge"
export const LOCAL_TIME_OFFSITE = "+08:00"
export function cn(...inputs) { export function cn(...inputs) {
return twMerge(clsx(inputs)) return twMerge(clsx(inputs))
} }
export function formatDate(date) { export function formatDate(date) {
var d = new Date(isNaN(date) ? date + "T00:00:00" : date) // var d = new Date(isNaN(date) ? date + "T00:00:00" + LOCAL_TIME_OFFSITE : date) // local
var d = new Date(isNaN(date) ? date + "T00:00:00" : date) // utc
var iso = d.toISOString() var iso = d.toISOString()
return iso.slice(0, 10) + " " + iso.slice(11, 23) + "Z" return iso.slice(0, 10) + " " + iso.slice(11, 23) + "Z"
// return [d.getFullYear(), (d.getMonth() + 1).padLeft(), d.getDate().padLeft()].join("-") + " " + [d.getHours().padLeft(), d.getMinutes().padLeft(), d.getSeconds().padLeft()].join(":") + ".000Z" // return [d.getFullYear(), (d.getMonth() + 1).padLeft(), d.getDate().padLeft()].join("-") + " " + [d.getHours().padLeft(), d.getMinutes().padLeft(), d.getSeconds().padLeft()].join(":") + ".000Z"

View File

@ -9,7 +9,7 @@ import { persist } from "zustand/middleware"
import axios from "axios" import axios from "axios"
import { nanoid } from "nanoid" import { nanoid } from "nanoid"
import { formatDate } from "./lib/utils" import { formatDate, LOCAL_TIME_OFFSITE } from "./lib/utils"
const DAYS_RANGE = [1, 14] const DAYS_RANGE = [1, 14]
@ -211,7 +211,9 @@ export function getArticles(date) {
if (!date) return [] if (!date) return []
const from = formatDate(date) const from = formatDate(date)
const to = formatDate(new Date(new Date(date).getTime() + 60 * 60 * 24 * 1000)) //const to = formatDate(new Date(new Date(date + "T00:00:00" + LOCAL_TIME_OFFSITE).getTime() + 60 * 60 * 24 * 1000))
const to = formatDate(new Date(new Date(date + "T00:00:00").getTime() + 60 * 60 * 24 * 1000))
console.log("from/to", from, to)
return pb.collection("articles").getFullList({ return pb.collection("articles").getFullList({
sort: "-created", sort: "-created",
expand: "translation_result", expand: "translation_result",
@ -224,15 +226,15 @@ export function getInsight(id) {
} }
export function getInsights(date) { export function getInsights(date) {
if (!date) return null if (!date) return []
const from = formatDate(date) const from = formatDate(date)
//const to = formatDate(new Date(new Date(date + "T00:00:00" + LOCAL_TIME_OFFSITE).getTime() + 60 * 60 * 24 * 1000))
const to = formatDate(new Date(new Date(date + "T00:00:00").getTime() + 60 * 60 * 24 * 1000)) const to = formatDate(new Date(new Date(date + "T00:00:00").getTime() + 60 * 60 * 24 * 1000))
// console.log("from/to", from, to) // console.log("from/to", from, to)
const f = 'created >= "' + from + '" && created < "' + to + '"' const f = 'created >= "' + from + '" && created < "' + to + '"'
console.log(f) // console.log(f)
return pb.collection("insights").getFullList({ return pb.collection("insights").getFullList({
sort: "-created", sort: "-created",
expand: "articles, articles.translation_result", expand: "articles, articles.translation_result",
@ -250,7 +252,7 @@ export async function getInsightDates() {
Authorization: "Bearer " + pb.authStore?.token, Authorization: "Bearer " + pb.authStore?.token,
}, },
}) })
// return data.map((d) => new Date(d + "T00:00:00Z").toLocaleDateString().split("/").join("-")) //return data.map((d) => new Date(d + "T00:00:00" + LOCAL_TIME_OFFSITE).toISOString().slice(0, 10))
return data return data
} }
@ -263,6 +265,7 @@ export async function getArticleDates() {
Authorization: "Bearer " + pb.authStore?.token, Authorization: "Bearer " + pb.authStore?.token,
}, },
}) })
//return data.map((d) => new Date(d + "T00:00:00" + LOCAL_TIME_OFFSITE).toISOString().slice(0, 10))
return data return data
} }