Jump to content

Date function problem when switching to 2010


cerebrus189

Recommended Posts

Hi all,

I'm having an issue pulling up a print report(csv file) when the new year started. I didn't write the code but I need help in fixing it. I know its a simple fix of 2-3 lines at the most.

 

This is what the code currently looks like.

 

//get last month for the filenames

$lastMonth = sprintf("%02d", date("m") - 1);

$thisYear = date("Y");

$fileLastMonth = $thisYear . $lastMonth;

 

$filename[0] = "HP/HPUsage" . $fileLastMonth . ".csv";

$filename[1] = "Lexmark/Room10/mfpUsage_192.168.1.46_" . $fileLastMonth . ".csv";

$friendlyName[1] = "Lexmark Rm 10";

$filename[2] = "Lexmark/Room19/mfpUsage_192.168.2.12_" . $fileLastMonth . ".csv";

$friendlyName[2] = "Lexmark Rm 19";

$filename[3] = "Lexmark/Room29/mfpUsage_192.168.1.32_" . $fileLastMonth . ".csv";

$friendlyName[3] = "Lexmark Rm 29";

$filename[4] = "Lexmark/Room31/mfpUsage_192.168.1.47_" . $fileLastMonth . ".csv";

$friendlyName[4] = "Lexmark Rm 44";

$filename[5] = "Sharp/Sharp_MX-M550N" . $fileLastMonth . ".csv";

$friendlyName[5] = "Sharp Mail Room";

echo "done<br />";

//enumerate the files to read

$y = 5;

$friendly = 1;

 

//pull last month and year

$tablename = date("FY",mktime(0, 0, 0, date("m")-1, date("d"),  date("Y")));

 

I understand its not able to pull "thisYear" because its 2010 and its not looking for last year. I also understand that it doesn't understand the last month is 12/2009 since its now January 2010. Any assistance in fixing this issue permanently would be much appreciated. If I need to post the entire php file, I will but I'm pretty sure the issue lies in these 2-3 lines of code.

Replace these lines

//get last month for the filenames
$lastMonth = sprintf("%02d", date("m") - 1);
$thisYear = date("Y");
$fileLastMonth = $thisYear . $lastMonth;

 

With these lines

//get last month for the filenames
$fileLastMonth =  date("Ym", strtotime("last month"));

What would I change the "last month" text to?

 

Also I found another line of code that's directly related to the function mentioned previously.

 

//pull last month and year

$tablename = date("FY",mktime(0, 0, 0, date("m")-1, date("d"),  date("Y")));

 

 

What would I change the "last month" text to?

 

Why would you change it? The strtotime() function will "Parse about any English textual datetime description into a Unix timestamp". So, when it uses "last month" it will literally return a timestamp for last month. And, that is what you want, right?

 

Also I found another line of code that's directly related to the function mentioned previously.

 

//pull last month and year

$tablename = date("FY", strtotime("last month"));

 

That must be some really FooBar code if it is creating a different datbase tabe for each month of records.

 

This should work fo rthat line:

 

$tablename = date("FY",mktime(0, 0, 0, date("m")-1, date("d"),   date("Y")));

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue.