$query = mysql_query ('insert into pm timestamp values("'.strtotime("now").'")')
echo "<td>".date('d-M-Y H:i:s', $date3)."</td>
timestamp in database is INT(11)
I am able to get today date but I can't get the current time.
please help thank you !
You have to get the timestamp directly in your database with MySql and not with PHP. Change the type of your "timestamp" to timestamp and use the appropriate function "NOW()"
Your request would be like that : INSERT INTO table (timestamp) VALUES 'NOW()'
time();
Gives you current date and time in unix format - timestamp
$query = mysql_query ('insert into pm timestamp values("'.time().'")')
and after that when you retreive field value to var $date3 just echo it like you did
echo "<td>".date('d-M-Y H:i:s', $date3)."</td>";
If you want timestamp, use time()
php > echo time();
1406880195
Related
I am trying to update the field SEEN in a SQL table to the current time and date.
Here is the code:
$now=date('d-m-Y H:i:s',time());
$query="UPDATE mytable SET SEEN = '".$now."' WHERE ID_ITEM = ".$id_material;
$stmt=$dbh1->prepare($query);
$query ;
$stmt->execute();
It sets my SEEN field to 0000-00-00 00:00:00.
If I write a specific date directly into the query, say "2021-03-10 02:30:00" it would write that date into the SEEN field. But instead of $now, it would output 0s. And $now is fine, it outputs the correct timestamp.
The format you are using is not the same that MySQL DATETIME uses:
$now = (new DateTime("now"))->format("Y-m-d H:i:s");
I have a MySQL query that saves a comment in the database and save also the timestamp I want to save the timestamp in another time zone settings can i do it through the following query:
INSERT INTO tahminler
(comment, comment_text, match_id, user_id, timestamp)
VALUES ('$comment','$comment_text', $id, $user_id, now())
Yes. You can do it with date_default_timezone_set() on PHP.
<?php
echo date('Y-m-d H:i:s');// Your local server time
date_default_timezone_set('America/Los_Angeles');
echo "<br>";
echo date('Y-m-d H:i:s');// Los Angeles time
So replace your now() with date('Y-m-d H:i:s'); after setting the timezone of your choice.
You can try with this one
//default timezone
$date = new DateTime(null);
echo 'Default timezone: '.$date->getTimestamp().'<br />'."\r\n";
//America/New_York
$date = new DateTime(null, new DateTimeZone('America/New_York'));
echo 'America/New_York: '.$date->getTimestamp().'<br />'."\r\n";
Get the regular timestamp and add the UTC offset
//America/New_York
$date = new DateTime(null, new DateTimeZone('America/New_York'));
echo 'America/New_York: '.($date->getTimestamp() + $date->getOffset()).'<br />'."\r\n";
You can alter your table with add column timestamp like this....
ALTER TABLE `table1` ADD `lastUpdated` TIMESTAMP
ON UPDATE CURRENT_TIMESTAMP NOT NULL DEFAULT CURRENT_TIMESTAMP
This adds a column called 'lastUpdated' with a default value of the current date/time. When that record is updated (lets say 5 minutes later) that timestamp will automatically update to the current time.
I'm having trouble inserting a record with a date field. No matter what I do, the date field gets stored as '0000-00-00'. The value comes into the php script as a string in this format:
'9/13/2013'. I'm converting to a date using strtotime, then trying to insert the record. Here's the code. Why can't I get this to work? Thanks!
$my_date = strtotime($_POST['d']);
//die(date("Y-m-d", $my_date)); //<--outputs just fine if I uncomment this
$sql = "INSERT INTO locations (id, my_date) VALUES ('$id', '$my_date')";
$result = mysql_query($sql);
I'm converting to a date using strtotime
strtotime returns a unix timestamp (integer), not a date string. You can format it for MySQL before inserting with the date function:
$my_date = date('Y-m-d H:i:s', strtotime($_POST['d']));
Alternatively, you can use the DateTime class for this purpose.
I have input where I get values like:
$water = 11/04/2013 00:00:00
(day/month/year) hour:minute:second
And a table definition:
CREATE TABLE `my_to` (
id_a INTEGER NOT NULL PRIMARY KEY AUTO_INCREMENT,
last_time timestamp ,
water timestamp
) ENGINE=InnoDB DEFAULT CHARSET=utf8 AUTO_INCREMENT=1;
but when I am trying to do an insert I get no value in the table...
Should I convert the day or something?
supposing $water has a date and time value?
$timestamp = strtotime($water);
Insert into table .... $timestamp ?
You can use MySQL's STR_TO_DATE function:
INSERT INTO `table`( `date_field` )
VALUES( STR_TO_DATE( $water, '%d/%m/%Y %H:%i:%S' );
http://dev.mysql.com/doc/refman/5.6/en/timestamp-initialization.html
Correct syntax is: 0000-00-00 00:00:00
so ..
$time = '11/04/2013 00:00:00';
$time = strtotime($time);
$time = date('Y-m-d H:i:s', $time);
# INSERT TIME...
The timestamp you want to insert must have the format YYYY-MM-DD HH:II:SS.
You can use date('Y-m-d H:i:s', strtotime($water)).
Hope this helps!
Timestamps in mysql must be in YYYY-MM-DD HH:II:SS format. You can do this in php with
Date('Y-m-d H:i:s', strtotime($water))
You could also use the FROM_UNIXTIME mysql function
water DATETIME
or fill the field with NOW() or CURRENT_TIMESTAMP
Be aware that strtotime() interprets that date in the format mm/dd/YYYY, and not as dd/mm/YYYY.
You should rearrange date in a different format (YYYY-mm-dd would be the best, imho).
I can't believe I can't do this, but I want to be able to store the current date and time from php in to a mysql table.
The column in the table is type datetime.
I've tried this
$current_date = date("Y-m-d");
$my_date = strtotime($current_date);
INSERT INTO my_table (date_time) VALUES ('$my_date')
but my timestamp comes up as 0000-00-00 00:00:00
This must be so easy to do but I just can't get it working!
I want to use the timestamp from php rather than using the mysql now() function
Try this:
$my_date = date("Y-m-d H:i:s");
INSERT INTO my_table (date_time) VALUES ('$my_date');
In the date-format parameter of the date function, use :
'H' for 24hr format
'h' for 12hr format
Don't save it as the Unix Timestamp (which strtotime() outputs), but as "2012-12-02 13:00" into the DATETIME column.
Create column type TIMESTAMP and set it to NOT NULL. Then pass in NULL during INSERT and MySQL will insert current date and time. This works for me.
set the 'type' of column named 'date_time' as 'DATETIME' and run the following query:
INSERT INTO my_table (`date_time`) VALUES (CURRENT_TIMESTAMP)
If you have the date in PHP as a timestamp, you can use the FROM_UNIXTIME function [1]
mysql> insert into table_name values (FROM_UNIXTIME(your_timestamp_here));
Hope it helped
[1]. https://dev.mysql.com/doc/refman/5.1/en/date-and-time-functions.html#function_from-unixtime
Remove the strtotime()
$current_date = date("Y-m-d");
INSERT INTO my_table (date_time) VALUES ('$current_date')
If you want to include the hour, minutes and seconds,
$current_date = date("Y-m-d H:i:s");