Pearl Harbor attack was December 7th during the day. War wasn't declared until the next day, a day after Canada declared war on Japan. What gives?
This boils down basically to timing as well as the way the US government operates.
First, timing. The attack on Pearl Harbor commenced between 0755 and 0800 in Oahu. The time difference between Hawaii and Washington, D.C. in 1941 was five-and-a-half hours, so that would be 1:30 p.m. in the capital. Washington received word by about 1:40. The attack continued through about 3:30 p.m., but no one would have been sure that the attack was done by then; reports continued to come in about false sightings of planes for the rest of the day, and Japan's other attacks in the Pacific would have also been commencing.
Most of the key figures in Washington were relatively easy to get in touch with and call for a conference at the White House; the Secretary of State, Secretary of the Navy, Secretary of War, Secretary of the Treasury, Army Chief of Staff, and Chief of Naval Operations were in the White House very quickly. Roosevelt seems to have been on the phone with the governor of Hawaii even as the attack was continuing. Other figures who had roles to play and had to put plans into place in wartime, like J. Edgar Hoover, were also easily reachable. But the early priority would have been to gain information about what was happening and to make the immediate decisions that needed to be made. One of those decisions was relayed to the Pacific fleet in a message from CNO Harold Stark just before 6:00 p.m. in Washington: "Execute against Japan unrestricted air and submarine warfare." Any American ships and submarines at sea in the Pacific now were in the clear to open fire against any Japanese ships. Somewhere, between all of these and the meeting that was about to happen, Roosevelt dictated the first draft of his "Day of Infamy" speech to his secretary.
Later that night, Roosevelt met with his full cabinet. At least one member, the Secretary of Labor, had to be flown back from a speaking engagement in Detroit. Many of these cabinet members who were not key to war efforts entered the meeting knowing only what they had heard on the radio about the attack. Roosevelt gave them the full picture as he knew it. Roosevelt also read the draft of his speech, which some cabinet members believed was too short. Then, Roosevelt met with senior leaders from both chambers of the US Congress (the House and Senate). This included the majority and minority leaders of both the House and Senate, as well as senior members of the foreign relations committees, and the armed services committees, and perhaps a few others. He told them the details that he knew and requested to speak to a joint session the next day. He did not read his draft of the speech to the Congressmen; they did not hear it until the next day.
This leads us to reason number two: The President cannot unilaterally declare war (at least, he couldn't in 1941). The President is commander in chief of the American military, but only Congress can issue a declaration of war. It's one of the "checks and balances" included in the Constitutions. I'm an American, so my understanding of Canadian civics is surface-level at best, but it seems that the Canadian prime minister, with the advice of the cabinet, can issue a declaration of war. So Canada declared war on December 7. Roosevelt needed Congress to vote on it, which required Congress to convene. Congress now includes more than 500 members; at the time it was 471.
Congress assembled the next morning, and Roosevelt spoke shortly after noon. This had the added benefit of giving every American advance notice that the president was going to speak, so many millions of people would have been listening to his speech on the radio. Congress voted immediately; the Senate voted 82-0 and then the House voted 388-1 to declare war.
Sources:
Pacific Crucible: War at Sea in the Pacific, 1941-1942, By Ian Toll
At Dawn We Slept, By Gordon Prange
The Constitution of the United States