2017-12-21 3 views
1

時間を分、秒、午前/午後に分けて、データベースにstarttime(varchar)のように1:00 pmとして保存します。 phpの文字列から時間、分、秒、am/pmをフェッチする方法は?

This is my mysql database

はどのように phpで時間、分、秒、AM/PMに開始時刻を分離する、と私は誰もがこれを行うために私を助けるactivity.can Androidにそれらを送信する必要があります。

この私のPHPコード

<?php 
error_reporting(0); 
require "init.php"; 

$name = $_POST["name"]; 
$password = $_POST["password"]; 



$sql = "SELECT * FROM `user_info` WHERE `name`='".$name."' AND `password`='".$password."';"; 

$result = mysqli_query($con, $sql); 

$response = array(); 

while($row = mysqli_fetch_array($result)){ 
    //$response = array("id"=>$row[0],"name"=>$row[1],"password"=>$row[2],"email"=>$row[3],"ScheduleDate"=>$row[4],"StartTime"=>$row[5],"Endtime"=>$row[6],"Hours"=>$row[7]); 

    $response = array("id"=>$row[0],"StartTime"=>$row[5],"Endtime"=>$row[6],"Hours"=>$row[7]); 

    } 

echo json_encode(array("user_data"=>$response)); 

?> 

Androidのアクティビティコード

package com.example.myapplication; 

import android.content.Context; 
import android.content.Intent; 
import android.os.AsyncTask; 
import android.os.Bundle; 
import android.support.v7.app.AppCompatActivity; 
import android.view.View; 
import android.widget.EditText; 

import org.json.JSONException; 
import org.json.JSONObject; 

import java.io.IOException; 
import java.io.InputStream; 
import java.io.OutputStream; 
import java.net.HttpURLConnection; 
import java.net.MalformedURLException; 
import java.net.URL; 

public class MainActivity extends AppCompatActivity { 

    EditText name, password; 
    String Name, Password; 
    Context ctx=this; 
    String NAME=null, PASSWORD=null, EMAIL=null,ScheduleDate=null,StartTime=null,Endtime=null,Hours=null; 

    @Override 
    protected void onCreate(Bundle savedInstanceState) { 
     super.onCreate(savedInstanceState); 
     setContentView(R.layout.activity_main); 
     name = (EditText) findViewById(R.id.main_name); 
     password = (EditText) findViewById(R.id.main_password); 
    } 



    public void main_login(View v){ 
     Name = name.getText().toString(); 
     Password = password.getText().toString(); 
     BackGround b = new BackGround(); 
     b.execute(Name, Password); 
    } 

    class BackGround extends AsyncTask<String, String, String> { 

     @Override 
     protected String doInBackground(String... params) { 
      String name = params[0]; 
      String password = params[1]; 
      String data=""; 
      int tmp; 

      try { 
       URL url = new URL("http://localhost/sample/loo/text.php"); 
       String urlParams = "name="+name+"&password="+password; 

       HttpURLConnection httpURLConnection = (HttpURLConnection) url.openConnection(); 
       httpURLConnection.setDoOutput(true); 
       OutputStream os = httpURLConnection.getOutputStream(); 
       os.write(urlParams.getBytes()); 
       os.flush(); 
       os.close(); 

       InputStream is = httpURLConnection.getInputStream(); 
       while((tmp=is.read())!=-1){ 
        data+= (char)tmp; 
       } 

       is.close(); 
       httpURLConnection.disconnect(); 

       return data; 
      } catch (MalformedURLException e) { 
       e.printStackTrace(); 
       return "Exception: "+e.getMessage(); 
      } catch (IOException e) { 
       e.printStackTrace(); 
       return "Exception: "+e.getMessage(); 
      } 
     } 

     @Override 
     protected void onPostExecute(String s) { 
      String err=null; 
      try { 
       JSONObject root = new JSONObject(s); 
       JSONObject user_data = root.getJSONObject("user_data"); 
       NAME = user_data.getString("name"); 
       PASSWORD = user_data.getString("password"); 
       EMAIL = user_data.getString("email"); 
       ScheduleDate = user_data.getString("ScheduleDate"); 
       StartTime = user_data.getString("StartTime"); 
       Endtime = user_data.getString("Endtime"); 
       Hours = user_data.getString("Hours"); 
      } catch (JSONException e) { 
       e.printStackTrace(); 
       err = "Exception: "+e.getMessage(); 
      } 

      Intent i = new Intent(ctx, Home.class); 
      i.putExtra("name", NAME); 
      i.putExtra("password", PASSWORD); 
      i.putExtra("email", EMAIL); 
      i.putExtra("ScheduleDate", ScheduleDate); 
      i.putExtra("StartTime", StartTime); 
      i.putExtra("Endtime", Endtime); 
      i.putExtra("Hours", Hours); 
      i.putExtra("err", err); 
      startActivity(i); 

     } 
    } 
} 
+0

私は一歩踏み込んで、StartTimeを文字列ではなくDateTimeフィールドに保存できるかどうかを尋ねます。その代わりに、保存するデータを使いやすい形式で前処理します。 – burnttoast11

+0

はい、先生、しかし、これだけのようなデータベースを作成して、varcharにstarttimeとendtimeを保存していますので、私はそれをどうやって分離するのですか? –

+0

これは、ユーザーが「StartTime」フィールドに必要なものを置くことができるように思われるため、やりにくくなる可能性があります。 [よくある質問](https://stackoverflow.com/questions/23422915/create-date-time-when-the-format-is-unknown)をチェックして、多くの一般的な日付の時刻文字列を変換する方法を確認してください。それはすべてのケースをカバーするわけではありませんが、それはスタートです。 – burnttoast11

答えて

2

はこの1つを試してみてくださいされています

try { 
     String StartTime = "10:30 am"; 
     DateFormat sdf = new SimpleDateFormat("hh:mm aa"); 
     Date date = null; 
     date = sdf.parse(StartTime); 
     SimpleDateFormat sdfH = new SimpleDateFormat("hh"); 
     String hours = sdfH.format(date); 
     SimpleDateFormat sdfM = new SimpleDateFormat("mm"); 
     String minutes = sdfM.format(date); 
     SimpleDateFormat sdfS = new SimpleDateFormat("ss"); 
     String second = sdfS.format(date); 
     SimpleDateFormat sdfA = new SimpleDateFormat("aa"); 
     String ampm = sdfA.format(date); 


    } catch (ParseException e) { 
     e.printStackTrace(); 
    } 

O/P

Time: 10 30 AM 00 

私はあなたのために願っています

+0

ありがとうございました!出来た! –

関連する問題