NextJS Date issues
Unanswered
American black bear posted this in #help-forum
American black bearOP
Hello, I am working on a crud project, and in my crud project I have use of shadcn ui for nextjs that has calendar date picker, when i pick the date, it's outputting correct data
Here is my code for the entire tsx file,
Cheers
Wed Jan 31 2024 00:00:00 GMT-0500 (Eastern Standard Time (this was my last console logs but it's picking the dates correctly, but does not include the time. Here is my code for the entire tsx file,
"use client";
import { Button } from "@/components/ui/button";
import { CalendarIcon } from "@radix-ui/react-icons";
import { format } from "date-fns";
import { Calendar } from "@/components/ui/calendar";
import {
Popover,
PopoverContent,
PopoverTrigger,
} from "@/components/ui/popover";
import * as React from "react";
import {
Select,
SelectContent,
SelectItem,
SelectTrigger,
SelectValue,
} from "@/components/ui/select";
import { useState } from "react";
export default function PostTask() {
const [title, setTitle] = useState("");
const [content, setContent] = useState("");
const [severity, setSeverity] = useState("");
const [dueDate, setDueDate] = useState<Date | undefined>();
const handlePostTask = (e: React.FormEvent<HTMLFormElement>) => {
e.preventDefault();
if (title.length < 3 || content.length < 3) {
console.log("Error");
} else {
console.log({ title, content, severity, date: dueDate });
}
};
const handleSeverityChange = (selectedSeverity: string) => {
setSeverity(selectedSeverity);
};
return (
<div className="max-w-xl mx-auto mt-8 p-4">
<h1 className="text-2xl font-bold mb-4">Post a Task</h1>
<form onSubmit={handlePostTask}>
<div className="mb-4">
<label
htmlFor="title"
className="block text-sm font-medium text-gray-600"
>
Title
</label>
<input
type="text"
id="title"
className="mt-1 p-2 w-full border rounded-md"
value={title}
onChange={(e) => setTitle(e.target.value)}
required
/>
</div>
<div className="mb-4">
<label
htmlFor="content"
className="block text-sm font-medium text-gray-600"
>
Content
</label>
<textarea
id="content"
className="mt-1 p-2 w-full border rounded-md"
value={content}
onChange={(e) => setContent(e.target.value)}
required
/>
</div>
<div className="mb-5">
<Select onValueChange={handleSeverityChange} required>
<SelectTrigger className="w-[180px]">
<SelectValue placeholder="Severity" />
</SelectTrigger>
<SelectContent>
<SelectItem value="1">Low</SelectItem>
<SelectItem value="2">Moderate</SelectItem>
<SelectItem value="3">High</SelectItem>
<SelectItem value="4">Critical</SelectItem>
</SelectContent>
</Select>
<Popover>
<PopoverTrigger asChild>
<Button
variant="outline"
className={`w-[240px] justify-start text-left font-normal ${
!dueDate && "text-muted-foreground"
}`}
>
<CalendarIcon className="mr-2 h-4 w-4" />
{dueDate
? format(dueDate, "MM/dd/yyyy")
: <span>Pick a date</span>}
</Button>
</PopoverTrigger>
<PopoverContent className="w-auto p-0" align="start">
<Calendar
mode="single"
selected={dueDate}
onSelect={setDueDate}
initialFocus
/>
</PopoverContent>
</Popover>
</div>
<Button>Submit</Button>
</form>
</div>
);
}Cheers
8 Replies
doesnt this just sets the date and not the time?
American black bearOP
Is there way to use the Date object to also capture the time? or am i stuck due to shadcn's date picker?
yes?
use other date time picker library? :v
American black bearOP
dang ok lol, i wanted to use this cuz it fitted nicely, but thanks for ur help!
theres this, made by someone, if you want to match the style