2016-04-13 6 views
1

データベースのCURRENT_TIMESTAMPとして日付の行のデフォルト値を指定しました。現在、このUTCの日付を&に変更しようとしましたが、ログインしたユーザーの時刻は&です。私はstackoverflow Convert UTC date time to local date time using JavaScriptで見つけた1つのコードを使用しています。しかし、これは私に適切な日付を与えていません&時間。私は日付&の時間のすべてのゼロを得ています。私が試したコードを以下で見つけてください。事前に感謝してください。データベースからUTCタイムスタンプを日付に記録する

var today = new Date(); 
 
var date1 = convertUTCDateToLocalDate(new Date(today)); 
 

 
function convertUTCDateToLocalDate(date) { 
 
    var newDate = new Date(date1.getTime()+date1.getTimezoneOffset()*60*1000); 
 
    var offset = date1.getTimezoneOffset()/60; 
 
    var hours = date1.getHours(); 
 
    newDate.setHours(hours - offset); 
 
    return newDate; 
 
} 
 

 
var date = date1.toLocaleString(); 
 

 
$http.post('webservices/sample.php', { 
 
     'date':date, 
 
})

PHPコード:

$date1=mysql_real_escape_string($data->date); 

$date=strtotime($date1); 

$timedatenew=date('Y-m-d H:i:s', $date); 

$query=mysql_query("insert into UserDate(actiondate) values('$timedatenew')"); 
+0

説明から質問が出なかったので、いくつかの入力と期待される出力を提供できますか?私の貧しいスキルには申し訳ありません! –

+0

結果を得るためにこれを簡単に行うことができると思います。 var isoDate = "2016-04-13T11:01:03.269Z"; var utcDate = "Wed、2014年4月13日11:01:03 GMT" var localDateFromISO = new Date(isoDate); var localDateFromUTC = new Date(utcDate); console.log(isoDate、localDateFromISO); console.log(utcDate、localDateFromUTC); –

答えて

0

私は疑いあなたがすべてゼロを受けている理由は、convertUTCDateToLocalDate関数の日付1へのすべての参照です。あなたは次のようなものを試すことができます:

function convertUTCDateToLocalDate(date) { 
    var newDate = new Date(date.getTime()+date.getTimezoneOffset()*60*1000); 
    var offset = date.getTimezoneOffset()/60; 
    var hours = date.getHours(); 
    newDate.setHours(hours - offset); 
    return newDate; 
} 

var today = new Date(); 
var date1 = convertUTCDateToLocalDate(new Date(today)); 
var date = date1.toLocaleString(); 

$http.post('webservices/sample.php', { 
     'date':date, 
}) 

希望に役立ちます!

EDIT:My ACTUALサンプルコード(これをテストするためのPHPバックエンドはありません)。

<script> 

function convertUTCDateToLocalDate(date) { 
    var newDate = new Date(date.getTime()+date.getTimezoneOffset()*60*1000); 
    var offset = date.getTimezoneOffset()/60; 
    var hours = date.getHours(); 
    newDate.setHours(hours - offset); 
    return newDate; 
} 

var today = new Date(); 
var date1 = convertUTCDateToLocalDate(new Date(today)); 
var date = date1.toLocaleString(); 

console.log(date); 

</script> 

ブラウザのコンソールログに現地の日時が表示されています。それでも問題が解決しない場合は、私のbailiwickの外にあるPHPコードと関係があります。

幸運を祈る!

+0

変更されましたが、動作していません。 – User

+0

PHPコードでは、print_r( "$ timedatenew")を使用して "$ timedatenew"の値を印刷していますが、日付として "1970-01-01 01:00:00"が表示されています。どのようにフォーマットを修正するためにそれを変更できますか? – User

+0

私のサンプル( "4/13/2016、6:28:26 AM")に実際のローカル日付/時刻が表示されています。 JavaScriptの日付の書式設定は完全に単純ではありません(http://stackoverflow.com/questions/3552461/how-to-format-a-javascript-dateを参照)。 PHPでJavaScriptの日付を解析する方が良いかもしれません。残念ながら、私はPHPについて何も知らない。ごめんなさい。 : - \ – CaffeineFueled

関連する問題